import z from 'zod';
export declare const PluginManifestMethodSchemaSchema: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodObject<{
    title: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
        string: "string";
        number: "number";
        boolean: "boolean";
        object: "object";
        integer: "integer";
    }>>>;
    default: z.ZodOptional<z.ZodAny>;
    enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
    minimum: z.ZodOptional<z.ZodNumber>;
    maximum: z.ZodOptional<z.ZodNumber>;
    precision: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    array: z.ZodOptional<z.ZodBoolean>;
    required: z.ZodOptional<z.ZodArray<z.ZodString>>;
    uiHint: z.ZodOptional<z.ZodObject<{
        type: z.ZodOptional<z.ZodString>;
        order: z.ZodOptional<z.ZodInt>;
    }, z.core.$strip>>;
    properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            string: "string";
            number: "number";
            boolean: "boolean";
            object: "object";
            integer: "integer";
        }>>>;
        title: z.ZodString;
        description: z.ZodString;
        default: z.ZodOptional<z.ZodAny>;
        enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
        minimum: z.ZodOptional<z.ZodNumber>;
        maximum: z.ZodOptional<z.ZodNumber>;
        precision: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
        array: z.ZodOptional<z.ZodBoolean>;
        required: z.ZodOptional<z.ZodArray<z.ZodString>>;
        uiHint: z.ZodOptional<z.ZodObject<{
            type: z.ZodOptional<z.ZodString>;
            order: z.ZodOptional<z.ZodInt>;
        }, z.core.$strip>>;
        properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<any, z.core.$strip>>>;
    }, z.core.$strip>>>;
}, z.core.$strip>>>, z.ZodTransform<{
    type: "string" | "number" | "boolean" | "object" | "integer";
    title?: string | undefined;
    description?: string | undefined;
    default?: any;
    enum?: string[] | undefined;
    minimum?: number | undefined;
    maximum?: number | undefined;
    precision?: number | undefined;
    array?: boolean | undefined;
    required?: string[] | undefined;
    uiHint?: {
        type?: string | undefined;
        order?: number | undefined;
    } | undefined;
    properties?: Record<string, {
        type: "string" | "number" | "boolean" | "object" | "integer";
        title: string;
        description: string;
        default?: any;
        enum?: string[] | undefined;
        minimum?: number | undefined;
        maximum?: number | undefined;
        precision?: number | undefined;
        array?: boolean | undefined;
        required?: string[] | undefined;
        uiHint?: {
            type?: string | undefined;
            order?: number | undefined;
        } | undefined;
        properties?: Record<string, any> | undefined;
    }> | undefined;
} | null | undefined, {
    type: "string" | "number" | "boolean" | "object" | "integer";
    title?: string | undefined;
    description?: string | undefined;
    default?: any;
    enum?: string[] | undefined;
    minimum?: number | undefined;
    maximum?: number | undefined;
    precision?: number | undefined;
    array?: boolean | undefined;
    required?: string[] | undefined;
    uiHint?: {
        type?: string | undefined;
        order?: number | undefined;
    } | undefined;
    properties?: Record<string, {
        type: "string" | "number" | "boolean" | "object" | "integer";
        title: string;
        description: string;
        default?: any;
        enum?: string[] | undefined;
        minimum?: number | undefined;
        maximum?: number | undefined;
        precision?: number | undefined;
        array?: boolean | undefined;
        required?: string[] | undefined;
        uiHint?: {
            type?: string | undefined;
            order?: number | undefined;
        } | undefined;
        properties?: Record<string, any> | undefined;
    }> | undefined;
} | null | undefined>>;
declare const PluginManifestDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    name: z.ZodString;
    version: z.ZodString;
    title: z.ZodString;
    description: z.ZodString;
    wasmPath: z.ZodString;
    author: z.ZodString;
    methods: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        title: z.ZodString;
        description: z.ZodString;
        types: z.ZodArray<z.ZodEnum<typeof import("src/enum").WorkflowType>>;
        hostFunctions: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        allowedHosts: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
        schema: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodObject<{
            title: z.ZodOptional<z.ZodString>;
            description: z.ZodOptional<z.ZodString>;
            type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
                string: "string";
                number: "number";
                boolean: "boolean";
                object: "object";
                integer: "integer";
            }>>>;
            default: z.ZodOptional<z.ZodAny>;
            enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
            minimum: z.ZodOptional<z.ZodNumber>;
            maximum: z.ZodOptional<z.ZodNumber>;
            precision: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
            array: z.ZodOptional<z.ZodBoolean>;
            required: z.ZodOptional<z.ZodArray<z.ZodString>>;
            uiHint: z.ZodOptional<z.ZodObject<{
                type: z.ZodOptional<z.ZodString>;
                order: z.ZodOptional<z.ZodInt>;
            }, z.core.$strip>>;
            properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
                    string: "string";
                    number: "number";
                    boolean: "boolean";
                    object: "object";
                    integer: "integer";
                }>>>;
                title: z.ZodString;
                description: z.ZodString;
                default: z.ZodOptional<z.ZodAny>;
                enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
                minimum: z.ZodOptional<z.ZodNumber>;
                maximum: z.ZodOptional<z.ZodNumber>;
                precision: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
                array: z.ZodOptional<z.ZodBoolean>;
                required: z.ZodOptional<z.ZodArray<z.ZodString>>;
                uiHint: z.ZodOptional<z.ZodObject<{
                    type: z.ZodOptional<z.ZodString>;
                    order: z.ZodOptional<z.ZodInt>;
                }, z.core.$strip>>;
                properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<any, z.core.$strip>>>;
            }, z.core.$strip>>>;
        }, z.core.$strip>>>, z.ZodTransform<{
            type: "string" | "number" | "boolean" | "object" | "integer";
            title?: string | undefined;
            description?: string | undefined;
            default?: any;
            enum?: string[] | undefined;
            minimum?: number | undefined;
            maximum?: number | undefined;
            precision?: number | undefined;
            array?: boolean | undefined;
            required?: string[] | undefined;
            uiHint?: {
                type?: string | undefined;
                order?: number | undefined;
            } | undefined;
            properties?: Record<string, {
                type: "string" | "number" | "boolean" | "object" | "integer";
                title: string;
                description: string;
                default?: any;
                enum?: string[] | undefined;
                minimum?: number | undefined;
                maximum?: number | undefined;
                precision?: number | undefined;
                array?: boolean | undefined;
                required?: string[] | undefined;
                uiHint?: {
                    type?: string | undefined;
                    order?: number | undefined;
                } | undefined;
                properties?: Record<string, any> | undefined;
            }> | undefined;
        } | null | undefined, {
            type: "string" | "number" | "boolean" | "object" | "integer";
            title?: string | undefined;
            description?: string | undefined;
            default?: any;
            enum?: string[] | undefined;
            minimum?: number | undefined;
            maximum?: number | undefined;
            precision?: number | undefined;
            array?: boolean | undefined;
            required?: string[] | undefined;
            uiHint?: {
                type?: string | undefined;
                order?: number | undefined;
            } | undefined;
            properties?: Record<string, {
                type: "string" | "number" | "boolean" | "object" | "integer";
                title: string;
                description: string;
                default?: any;
                enum?: string[] | undefined;
                minimum?: number | undefined;
                maximum?: number | undefined;
                precision?: number | undefined;
                array?: boolean | undefined;
                required?: string[] | undefined;
                uiHint?: {
                    type?: string | undefined;
                    order?: number | undefined;
                } | undefined;
                properties?: Record<string, any> | undefined;
            }> | undefined;
        } | null | undefined>>;
        uiHints: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>>>;
    templates: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        title: z.ZodString;
        description: z.ZodString;
        trigger: z.ZodEnum<typeof import("@immich/plugin-sdk", { with: { "resolution-mode": "import" } }).WorkflowTrigger>;
        steps: z.ZodArray<z.ZodObject<{
            method: z.ZodString;
            config: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
            enabled: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>;
        uiHints: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
    }, z.core.$strip>>>>;
}, z.core.$strip>, false>;
export declare class PluginManifestDto extends PluginManifestDto_base {
}
export {};
