import { zod } from '@shopify/cli-kit/node/schema';
export type FunctionConfigType = zod.infer<typeof FunctionExtensionSchema>;
export declare const FunctionExtensionSchema: zod.ZodObject<{
    name: zod.ZodString;
    description: zod.ZodOptional<zod.ZodString>;
    type: zod.ZodString;
    metafields: zod.ZodDefault<zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
        namespace: zod.ZodString;
        key: zod.ZodString;
    }, "strip", zod.ZodTypeAny, {
        namespace: string;
        key: string;
    }, {
        namespace: string;
        key: string;
    }>, "many">>>;
    handle: zod.ZodOptional<zod.ZodEffects<zod.ZodEffects<zod.ZodString, string, string>, string, string>>;
    extension_points: zod.ZodOptional<zod.ZodAny>;
    capabilities: zod.ZodOptional<zod.ZodObject<{
        network_access: zod.ZodOptional<zod.ZodBoolean>;
        block_progress: zod.ZodOptional<zod.ZodBoolean>;
        api_access: zod.ZodOptional<zod.ZodBoolean>;
        collect_buyer_consent: zod.ZodOptional<zod.ZodObject<{
            sms_marketing: zod.ZodOptional<zod.ZodBoolean>;
        }, "strip", zod.ZodTypeAny, {
            sms_marketing?: boolean | undefined;
        }, {
            sms_marketing?: boolean | undefined;
        }>>;
    }, "strip", zod.ZodTypeAny, {
        network_access?: boolean | undefined;
        block_progress?: boolean | undefined;
        api_access?: boolean | undefined;
        collect_buyer_consent?: {
            sms_marketing?: boolean | undefined;
        } | undefined;
    }, {
        network_access?: boolean | undefined;
        block_progress?: boolean | undefined;
        api_access?: boolean | undefined;
        collect_buyer_consent?: {
            sms_marketing?: boolean | undefined;
        } | undefined;
    }>>;
    categories: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
    settings: zod.ZodOptional<zod.ZodObject<{
        fields: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
            key: zod.ZodOptional<zod.ZodString>;
            name: zod.ZodOptional<zod.ZodString>;
            description: zod.ZodOptional<zod.ZodString>;
            required: zod.ZodOptional<zod.ZodBoolean>;
            type: zod.ZodString;
            validations: zod.ZodOptional<zod.ZodArray<zod.ZodAny, "many">>;
        }, "strip", zod.ZodTypeAny, {
            type: string;
            key?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            required?: boolean | undefined;
            validations?: any[] | undefined;
        }, {
            type: string;
            key?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            required?: boolean | undefined;
            validations?: any[] | undefined;
        }>, "many">>;
    }, "strip", zod.ZodTypeAny, {
        fields?: {
            type: string;
            key?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            required?: boolean | undefined;
            validations?: any[] | undefined;
        }[] | undefined;
    }, {
        fields?: {
            type: string;
            key?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            required?: boolean | undefined;
            validations?: any[] | undefined;
        }[] | undefined;
    }>>;
    build: zod.ZodObject<{
        command: zod.ZodOptional<zod.ZodEffects<zod.ZodString, string | undefined, string>>;
        path: zod.ZodOptional<zod.ZodString>;
        watch: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodArray<zod.ZodString, "many">]>>;
    }, "strip", zod.ZodTypeAny, {
        command?: string | undefined;
        path?: string | undefined;
        watch?: string | string[] | undefined;
    }, {
        command?: string | undefined;
        path?: string | undefined;
        watch?: string | string[] | undefined;
    }>;
    configuration_ui: zod.ZodDefault<zod.ZodOptional<zod.ZodBoolean>>;
    ui: zod.ZodOptional<zod.ZodObject<{
        enable_create: zod.ZodOptional<zod.ZodBoolean>;
        paths: zod.ZodOptional<zod.ZodObject<{
            create: zod.ZodString;
            details: zod.ZodString;
        }, "strip", zod.ZodTypeAny, {
            create: string;
            details: string;
        }, {
            create: string;
            details: string;
        }>>;
        handle: zod.ZodOptional<zod.ZodString>;
    }, "strip", zod.ZodTypeAny, {
        enable_create?: boolean | undefined;
        paths?: {
            create: string;
            details: string;
        } | undefined;
        handle?: string | undefined;
    }, {
        enable_create?: boolean | undefined;
        paths?: {
            create: string;
            details: string;
        } | undefined;
        handle?: string | undefined;
    }>>;
    api_version: zod.ZodString;
    input: zod.ZodOptional<zod.ZodObject<{
        variables: zod.ZodOptional<zod.ZodObject<{
            namespace: zod.ZodString;
            key: zod.ZodString;
        }, "strip", zod.ZodTypeAny, {
            namespace: string;
            key: string;
        }, {
            namespace: string;
            key: string;
        }>>;
    }, "strip", zod.ZodTypeAny, {
        variables?: {
            namespace: string;
            key: string;
        } | undefined;
    }, {
        variables?: {
            namespace: string;
            key: string;
        } | undefined;
    }>>;
    targeting: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
        target: zod.ZodString;
        input_query: zod.ZodOptional<zod.ZodString>;
        export: zod.ZodOptional<zod.ZodString>;
    }, "strip", zod.ZodTypeAny, {
        target: string;
        input_query?: string | undefined;
        export?: string | undefined;
    }, {
        target: string;
        input_query?: string | undefined;
        export?: string | undefined;
    }>, "many">>;
}, "strip", zod.ZodTypeAny, {
    name: string;
    type: string;
    metafields: {
        namespace: string;
        key: string;
    }[];
    api_version: string;
    build: {
        command?: string | undefined;
        path?: string | undefined;
        watch?: string | string[] | undefined;
    };
    configuration_ui: boolean;
    description?: string | undefined;
    handle?: string | undefined;
    extension_points?: any;
    capabilities?: {
        network_access?: boolean | undefined;
        block_progress?: boolean | undefined;
        api_access?: boolean | undefined;
        collect_buyer_consent?: {
            sms_marketing?: boolean | undefined;
        } | undefined;
    } | undefined;
    categories?: string[] | undefined;
    settings?: {
        fields?: {
            type: string;
            key?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            required?: boolean | undefined;
            validations?: any[] | undefined;
        }[] | undefined;
    } | undefined;
    ui?: {
        enable_create?: boolean | undefined;
        paths?: {
            create: string;
            details: string;
        } | undefined;
        handle?: string | undefined;
    } | undefined;
    input?: {
        variables?: {
            namespace: string;
            key: string;
        } | undefined;
    } | undefined;
    targeting?: {
        target: string;
        input_query?: string | undefined;
        export?: string | undefined;
    }[] | undefined;
}, {
    name: string;
    type: string;
    api_version: string;
    build: {
        command?: string | undefined;
        path?: string | undefined;
        watch?: string | string[] | undefined;
    };
    description?: string | undefined;
    metafields?: {
        namespace: string;
        key: string;
    }[] | undefined;
    handle?: string | undefined;
    extension_points?: any;
    capabilities?: {
        network_access?: boolean | undefined;
        block_progress?: boolean | undefined;
        api_access?: boolean | undefined;
        collect_buyer_consent?: {
            sms_marketing?: boolean | undefined;
        } | undefined;
    } | undefined;
    categories?: string[] | undefined;
    settings?: {
        fields?: {
            type: string;
            key?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            required?: boolean | undefined;
            validations?: any[] | undefined;
        }[] | undefined;
    } | undefined;
    configuration_ui?: boolean | undefined;
    ui?: {
        enable_create?: boolean | undefined;
        paths?: {
            create: string;
            details: string;
        } | undefined;
        handle?: string | undefined;
    } | undefined;
    input?: {
        variables?: {
            namespace: string;
            key: string;
        } | undefined;
    } | undefined;
    targeting?: {
        target: string;
        input_query?: string | undefined;
        export?: string | undefined;
    }[] | undefined;
}>;
declare const spec: import("../specification.js").ExtensionSpecification<{
    name: string;
    type: string;
    metafields: {
        namespace: string;
        key: string;
    }[];
    api_version: string;
    build: {
        command?: string | undefined;
        path?: string | undefined;
        watch?: string | string[] | undefined;
    };
    configuration_ui: boolean;
    description?: string | undefined;
    handle?: string | undefined;
    extension_points?: any;
    capabilities?: {
        network_access?: boolean | undefined;
        block_progress?: boolean | undefined;
        api_access?: boolean | undefined;
        collect_buyer_consent?: {
            sms_marketing?: boolean | undefined;
        } | undefined;
    } | undefined;
    categories?: string[] | undefined;
    settings?: {
        fields?: {
            type: string;
            key?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            required?: boolean | undefined;
            validations?: any[] | undefined;
        }[] | undefined;
    } | undefined;
    ui?: {
        enable_create?: boolean | undefined;
        paths?: {
            create: string;
            details: string;
        } | undefined;
        handle?: string | undefined;
    } | undefined;
    input?: {
        variables?: {
            namespace: string;
            key: string;
        } | undefined;
    } | undefined;
    targeting?: {
        target: string;
        input_query?: string | undefined;
        export?: string | undefined;
    }[] | undefined;
}>;
export default spec;
