import { SharedLink } from "../database";
import z from 'zod';
declare const SharedLinkSearchDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    albumId: z.ZodOptional<z.ZodUUID>;
    id: z.ZodOptional<z.ZodUUID>;
}, z.core.$strip>, false>;
export declare class SharedLinkSearchDto extends SharedLinkSearchDto_base {
}
declare const SharedLinkCreateDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    type: z.ZodEnum<typeof import("src/enum").SharedLinkType>;
    assetIds: z.ZodOptional<z.ZodArray<z.ZodUUID>>;
    albumId: z.ZodOptional<z.ZodUUID>;
    description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    password: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    expiresAt: z.ZodOptional<z.ZodDefault<z.ZodNullable<z.ZodCodec<z.ZodISODateTime, z.ZodDate>>>>;
    allowUpload: z.ZodOptional<z.ZodBoolean>;
    allowDownload: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    showMetadata: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
}, z.core.$strip>, false>;
export declare class SharedLinkCreateDto extends SharedLinkCreateDto_base {
}
declare const SharedLinkEditDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    password: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    slug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    expiresAt: z.ZodOptional<z.ZodNullable<z.ZodCodec<z.ZodISODateTime, z.ZodDate>>>;
    allowUpload: z.ZodOptional<z.ZodBoolean>;
    allowDownload: z.ZodOptional<z.ZodBoolean>;
    showMetadata: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>, false>;
export declare class SharedLinkEditDto extends SharedLinkEditDto_base {
}
declare const SharedLinkLoginDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    password: z.ZodString;
}, z.core.$strip>, false>;
export declare class SharedLinkLoginDto extends SharedLinkLoginDto_base {
}
declare const SharedLinkResponseDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    id: z.ZodUUID;
    description: z.ZodNullable<z.ZodString>;
    password: z.ZodNullable<z.ZodString>;
    userId: z.ZodUUID;
    key: z.ZodString;
    type: z.ZodEnum<typeof import("src/enum").SharedLinkType>;
    createdAt: z.ZodCodec<z.ZodISODateTime, z.ZodDate>;
    expiresAt: z.ZodNullable<z.ZodCodec<z.ZodISODateTime, z.ZodDate>>;
    assets: z.ZodArray<z.ZodObject<{
        id: z.ZodUUID;
        type: z.ZodEnum<typeof import("src/enum").AssetType>;
        thumbhash: z.ZodNullable<z.ZodString>;
        originalMimeType: z.ZodOptional<z.ZodString>;
        localDateTime: z.ZodString;
        duration: z.ZodNullable<z.ZodInt32>;
        livePhotoVideoId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        hasMetadata: z.ZodBoolean;
        width: z.ZodNullable<z.ZodInt>;
        height: z.ZodNullable<z.ZodInt>;
        createdAt: z.ZodString;
        ownerId: z.ZodUUID;
        owner: z.ZodOptional<z.ZodObject<{
            id: z.ZodUUID;
            name: z.ZodString;
            email: z.ZodPipe<z.ZodEmail, z.ZodTransform<string, string>>;
            profileImagePath: z.ZodString;
            avatarColor: z.ZodEnum<typeof import("src/enum").UserAvatarColor>;
            profileChangedAt: z.ZodString;
        }, z.core.$strip>>;
        libraryId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
        originalPath: z.ZodString;
        originalFileName: z.ZodString;
        fileCreatedAt: z.ZodString;
        fileModifiedAt: z.ZodString;
        updatedAt: z.ZodString;
        isFavorite: z.ZodBoolean;
        isArchived: z.ZodBoolean;
        isTrashed: z.ZodBoolean;
        isOffline: z.ZodBoolean;
        visibility: z.ZodEnum<typeof import("src/enum").AssetVisibility>;
        exifInfo: z.ZodOptional<z.ZodObject<{
            make: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            model: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            exifImageWidth: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodInt>>>;
            exifImageHeight: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodInt>>>;
            fileSizeInByte: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodInt>>>;
            orientation: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            dateTimeOriginal: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            modifyDate: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            timeZone: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            lensModel: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            fNumber: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
            focalLength: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
            iso: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodInt>>>;
            exposureTime: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            latitude: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
            longitude: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
            city: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            state: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            country: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            description: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            projectionType: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
            rating: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodInt>>>;
        }, z.core.$strip>>;
        tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodUUID;
            parentId: z.ZodOptional<z.ZodString>;
            name: z.ZodString;
            value: z.ZodString;
            createdAt: z.ZodString;
            updatedAt: z.ZodString;
            color: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>;
        people: z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodUUID;
            name: z.ZodString;
            birthDate: z.ZodNullable<z.ZodString>;
            thumbnailPath: z.ZodString;
            isHidden: z.ZodBoolean;
            updatedAt: z.ZodOptional<z.ZodString>;
            isFavorite: z.ZodOptional<z.ZodBoolean>;
            color: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>;
        checksum: z.ZodString;
        stack: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            id: z.ZodUUID;
            primaryAssetId: z.ZodUUID;
            assetCount: z.ZodInt;
        }, z.core.$strip>>>;
        duplicateId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
        resized: z.ZodOptional<z.ZodBoolean>;
        isEdited: z.ZodBoolean;
    }, z.core.$strip>>;
    album: z.ZodOptional<z.ZodObject<{
        id: z.ZodUUID;
        albumName: z.ZodString;
        description: z.ZodString;
        createdAt: z.ZodString;
        updatedAt: z.ZodString;
        albumThumbnailAssetId: z.ZodNullable<z.ZodUUID>;
        shared: z.ZodBoolean;
        albumUsers: z.ZodArray<z.ZodObject<{
            user: z.ZodObject<{
                id: z.ZodUUID;
                name: z.ZodString;
                email: z.ZodPipe<z.ZodEmail, z.ZodTransform<string, string>>;
                profileImagePath: z.ZodString;
                avatarColor: z.ZodEnum<typeof import("src/enum").UserAvatarColor>;
                profileChangedAt: z.ZodString;
            }, z.core.$strip>;
            role: z.ZodEnum<typeof import("src/enum").AlbumUserRole>;
        }, z.core.$strip>>;
        hasSharedLink: z.ZodBoolean;
        assetCount: z.ZodInt;
        lastModifiedAssetTimestamp: z.ZodOptional<z.ZodString>;
        startDate: z.ZodOptional<z.ZodString>;
        endDate: z.ZodOptional<z.ZodString>;
        isActivityEnabled: z.ZodBoolean;
        order: z.ZodOptional<z.ZodEnum<typeof import("src/enum").AssetOrder>>;
        contributorCounts: z.ZodOptional<z.ZodArray<z.ZodObject<{
            userId: z.ZodUUID;
            assetCount: z.ZodInt;
        }, z.core.$strip>>>;
    }, z.core.$strip>>;
    allowUpload: z.ZodBoolean;
    allowDownload: z.ZodBoolean;
    showMetadata: z.ZodBoolean;
    slug: z.ZodNullable<z.ZodString>;
}, z.core.$strip>, false>;
export declare class SharedLinkResponseDto extends SharedLinkResponseDto_base {
}
export declare function mapSharedLink(sharedLink: SharedLink, options: {
    stripAssetMetadata: boolean;
}): SharedLinkResponseDto;
export {};
