import { SharedLink } from 'src/database';
import { AlbumResponseDto } from 'src/dtos/album.dto';
import { AssetResponseDto } from 'src/dtos/asset-response.dto';
import { SharedLinkType } from 'src/enum';
export declare class SharedLinkSearchDto {
    albumId?: string;
    id?: string;
}
export declare class SharedLinkCreateDto {
    type: SharedLinkType;
    assetIds?: string[];
    albumId?: string;
    description?: string | null;
    password?: string | null;
    slug?: string | null;
    expiresAt?: Date | null;
    allowUpload?: boolean;
    allowDownload?: boolean;
    showMetadata?: boolean;
}
export declare class SharedLinkEditDto {
    description?: string | null;
    password?: string | null;
    slug?: string | null;
    expiresAt?: Date | null;
    allowUpload?: boolean;
    allowDownload?: boolean;
    showMetadata?: boolean;
    changeExpiryTime?: boolean;
}
export declare class SharedLinkLoginDto {
    password: string;
}
export declare class SharedLinkPasswordDto {
    password?: string;
    token?: string;
}
export declare class SharedLinkResponseDto {
    id: string;
    description: string | null;
    password: string | null;
    token?: string | null;
    userId: string;
    key: string;
    type: SharedLinkType;
    createdAt: Date;
    expiresAt: Date | null;
    assets: AssetResponseDto[];
    album?: AlbumResponseDto;
    allowUpload: boolean;
    allowDownload: boolean;
    showMetadata: boolean;
    slug: string | null;
}
export declare function mapSharedLink(sharedLink: SharedLink, options: {
    stripAssetMetadata: boolean;
}): SharedLinkResponseDto;
