import { AssetFace, Person } from "../database";
import { AuthDto } from "./auth.dto";
import { AssetEditActionItem } from "./editing.dto";
import { ImageDimensions, MaybeDehydrated } from "../types";
import z from 'zod';
export declare const PersonResponseSchema: 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>;
declare const PersonCreateDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    birthDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    isHidden: z.ZodOptional<z.ZodBoolean>;
    isFavorite: z.ZodOptional<z.ZodBoolean>;
    color: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
}, z.core.$strip>, false>;
export declare class PersonCreateDto extends PersonCreateDto_base {
}
declare const PersonUpdateDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    birthDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    isHidden: z.ZodOptional<z.ZodBoolean>;
    isFavorite: z.ZodOptional<z.ZodBoolean>;
    color: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
    featureFaceAssetId: z.ZodOptional<z.ZodUUID>;
}, z.core.$strip>, false>;
export declare class PersonUpdateDto extends PersonUpdateDto_base {
}
declare const PeopleUpdateDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    people: z.ZodArray<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        birthDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        isHidden: z.ZodOptional<z.ZodBoolean>;
        isFavorite: z.ZodOptional<z.ZodBoolean>;
        color: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
        featureFaceAssetId: z.ZodOptional<z.ZodUUID>;
        id: z.ZodUUID;
    }, z.core.$strip>>;
}, z.core.$strip>, false>;
export declare class PeopleUpdateDto extends PeopleUpdateDto_base {
}
declare const MergePersonDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    ids: z.ZodArray<z.ZodUUID>;
}, z.core.$strip>, false>;
export declare class MergePersonDto extends MergePersonDto_base {
}
declare const PersonSearchDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    withHidden: z.ZodOptional<z.ZodCodec<z.ZodString, z.ZodBoolean>>;
    closestPersonId: z.ZodOptional<z.ZodUUID>;
    closestAssetId: z.ZodOptional<z.ZodUUID>;
    page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
    size: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
}, z.core.$strip>, false>;
export declare class PersonSearchDto extends PersonSearchDto_base {
}
declare const PersonResponseDto_base: import("nestjs-zod").ZodDto<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>, false>;
export declare class PersonResponseDto extends PersonResponseDto_base {
}
export declare const AssetFaceResponseSchema: z.ZodObject<{
    id: z.ZodUUID;
    imageHeight: z.ZodInt;
    imageWidth: z.ZodInt;
    boundingBoxX1: z.ZodInt;
    boundingBoxX2: z.ZodInt;
    boundingBoxY1: z.ZodInt;
    boundingBoxY2: z.ZodInt;
    sourceType: z.ZodOptional<z.ZodEnum<typeof import("src/enum").SourceType>>;
    person: z.ZodNullable<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>>;
}, z.core.$strip>;
declare const AssetFaceResponseDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    id: z.ZodUUID;
    imageHeight: z.ZodInt;
    imageWidth: z.ZodInt;
    boundingBoxX1: z.ZodInt;
    boundingBoxX2: z.ZodInt;
    boundingBoxY1: z.ZodInt;
    boundingBoxY2: z.ZodInt;
    sourceType: z.ZodOptional<z.ZodEnum<typeof import("src/enum").SourceType>>;
    person: z.ZodNullable<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>>;
}, z.core.$strip>, false>;
export declare class AssetFaceResponseDto extends AssetFaceResponseDto_base {
}
declare const AssetFaceUpdateDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    data: z.ZodArray<z.ZodObject<{
        personId: z.ZodUUID;
        assetId: z.ZodUUID;
    }, z.core.$strip>>;
}, z.core.$strip>, false>;
export declare class AssetFaceUpdateDto extends AssetFaceUpdateDto_base {
}
declare const FaceDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    id: z.ZodUUID;
}, z.core.$strip>, false>;
export declare class FaceDto extends FaceDto_base {
}
declare const AssetFaceCreateDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    personId: z.ZodUUID;
    assetId: z.ZodUUID;
    imageWidth: z.ZodInt;
    imageHeight: z.ZodInt;
    x: z.ZodInt;
    y: z.ZodInt;
    width: z.ZodInt;
    height: z.ZodInt;
}, z.core.$strip>, false>;
export declare class AssetFaceCreateDto extends AssetFaceCreateDto_base {
}
declare const AssetFaceDeleteDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    force: z.ZodBoolean;
}, z.core.$strip>, false>;
export declare class AssetFaceDeleteDto extends AssetFaceDeleteDto_base {
}
declare const PersonStatisticsResponseDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    assets: z.ZodInt;
}, z.core.$strip>, false>;
export declare class PersonStatisticsResponseDto extends PersonStatisticsResponseDto_base {
}
declare const PeopleResponseDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    total: z.ZodInt;
    hidden: z.ZodInt;
    people: 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>>;
    hasNextPage: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>, false>;
export declare class PeopleResponseDto extends PeopleResponseDto_base {
}
export declare function mapPerson(person: MaybeDehydrated<Person>): PersonResponseDto;
export declare function mapFaces(face: AssetFace, auth: AuthDto, edits?: AssetEditActionItem[], assetDimensions?: ImageDimensions): AssetFaceResponseDto;
export {};
