import { z } from 'zod';
export declare const ClashCoreValidator: z.ZodUnion<[z.ZodLiteral<"clash">, z.ZodLiteral<"clash.meta">, z.ZodLiteral<"stash">]>;
export declare const RemoteSnippetValidator: z.ZodObject<{
    name: z.ZodString;
    url: z.ZodString;
    surgioSnippet: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    name: string;
    url: string;
    surgioSnippet?: boolean | undefined;
}, {
    name: string;
    url: string;
    surgioSnippet?: boolean | undefined;
}>;
export declare const ClashConfigValidator: z.ZodObject<{
    enableTuic: z.ZodOptional<z.ZodBoolean>;
    enableShadowTls: z.ZodOptional<z.ZodBoolean>;
    enableHysteria2: z.ZodOptional<z.ZodBoolean>;
    enableVless: z.ZodOptional<z.ZodBoolean>;
    clashCore: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"clash">, z.ZodLiteral<"clash.meta">, z.ZodLiteral<"stash">]>>;
}, "strip", z.ZodTypeAny, {
    enableTuic?: boolean | undefined;
    enableShadowTls?: boolean | undefined;
    enableHysteria2?: boolean | undefined;
    enableVless?: boolean | undefined;
    clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}, {
    enableTuic?: boolean | undefined;
    enableShadowTls?: boolean | undefined;
    enableHysteria2?: boolean | undefined;
    enableVless?: boolean | undefined;
    clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}>;
export declare const SurgeConfigValidator: z.ZodObject<{
    resolveHostname: z.ZodOptional<z.ZodBoolean>;
    vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    resolveHostname?: boolean | undefined;
    vmessAEAD?: boolean | undefined;
}, {
    resolveHostname?: boolean | undefined;
    vmessAEAD?: boolean | undefined;
}>;
export declare const SurfboardConfigValidator: z.ZodObject<{
    vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    vmessAEAD?: boolean | undefined;
}, {
    vmessAEAD?: boolean | undefined;
}>;
export declare const QuantumultXConfigValidator: z.ZodObject<{
    vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    vmessAEAD?: boolean | undefined;
}, {
    vmessAEAD?: boolean | undefined;
}>;
export declare const SurgioConfigValidator: z.ZodObject<{
    artifacts: z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        template: z.ZodString;
        templateType: z.ZodDefault<z.ZodUnion<[z.ZodLiteral<"default">, z.ZodLiteral<"json">]>>;
        extendTemplate: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodUnknown], z.ZodUnknown>, z.ZodUnknown>>;
        provider: z.ZodString;
        categories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        combineProviders: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        customParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
        customFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>>;
        destDir: z.ZodOptional<z.ZodString>;
        destDirs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        downloadUrl: z.ZodOptional<z.ZodString>;
        templateString: z.ZodOptional<z.ZodString>;
        subscriptionUserInfoProvider: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        template: string;
        templateType: "default" | "json";
        provider: string;
        extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
        categories?: string[] | undefined;
        combineProviders?: string[] | undefined;
        customParams?: Record<string, any> | undefined;
        customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
        destDir?: string | undefined;
        destDirs?: string[] | undefined;
        downloadUrl?: string | undefined;
        templateString?: string | undefined;
        subscriptionUserInfoProvider?: string | undefined;
    }, {
        name: string;
        template: string;
        provider: string;
        templateType?: "default" | "json" | undefined;
        extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
        categories?: string[] | undefined;
        combineProviders?: string[] | undefined;
        customParams?: Record<string, any> | undefined;
        customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
        destDir?: string | undefined;
        destDirs?: string[] | undefined;
        downloadUrl?: string | undefined;
        templateString?: string | undefined;
        subscriptionUserInfoProvider?: string | undefined;
    }>, "many">;
    remoteSnippets: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        url: z.ZodString;
        surgioSnippet: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        url: string;
        surgioSnippet?: boolean | undefined;
    }, {
        name: string;
        url: string;
        surgioSnippet?: boolean | undefined;
    }>, "many">>;
    urlBase: z.ZodOptional<z.ZodString>;
    upload: z.ZodOptional<z.ZodObject<{
        prefix: z.ZodOptional<z.ZodString>;
        region: z.ZodOptional<z.ZodString>;
        endpoint: z.ZodOptional<z.ZodString>;
        bucket: z.ZodString;
        accessKeyId: z.ZodString;
        accessKeySecret: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        bucket: string;
        accessKeyId: string;
        accessKeySecret: string;
        endpoint?: string | undefined;
        prefix?: string | undefined;
        region?: string | undefined;
    }, {
        bucket: string;
        accessKeyId: string;
        accessKeySecret: string;
        endpoint?: string | undefined;
        prefix?: string | undefined;
        region?: string | undefined;
    }>>;
    binPath: z.ZodOptional<z.ZodObject<{
        shadowsocksr: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        shadowsocksr: string;
    }, {
        shadowsocksr: string;
    }>>;
    flags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>]>, "many">]>>>;
    surgeConfig: z.ZodOptional<z.ZodObject<{
        resolveHostname: z.ZodOptional<z.ZodBoolean>;
        vmessAEAD: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        resolveHostname?: boolean | undefined;
        vmessAEAD?: boolean | undefined;
    }, {
        resolveHostname?: boolean | undefined;
        vmessAEAD?: boolean | undefined;
    }>>;
    surfboardConfig: z.ZodOptional<z.ZodObject<{
        vmessAEAD: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        vmessAEAD?: boolean | undefined;
    }, {
        vmessAEAD?: boolean | undefined;
    }>>;
    quantumultXConfig: z.ZodOptional<z.ZodObject<{
        vmessAEAD: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        vmessAEAD?: boolean | undefined;
    }, {
        vmessAEAD?: boolean | undefined;
    }>>;
    clashConfig: z.ZodOptional<z.ZodObject<{
        enableTuic: z.ZodOptional<z.ZodBoolean>;
        enableShadowTls: z.ZodOptional<z.ZodBoolean>;
        enableHysteria2: z.ZodOptional<z.ZodBoolean>;
        enableVless: z.ZodOptional<z.ZodBoolean>;
        clashCore: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"clash">, z.ZodLiteral<"clash.meta">, z.ZodLiteral<"stash">]>>;
    }, "strip", z.ZodTypeAny, {
        enableTuic?: boolean | undefined;
        enableShadowTls?: boolean | undefined;
        enableHysteria2?: boolean | undefined;
        enableVless?: boolean | undefined;
        clashCore?: "clash" | "clash.meta" | "stash" | undefined;
    }, {
        enableTuic?: boolean | undefined;
        enableShadowTls?: boolean | undefined;
        enableHysteria2?: boolean | undefined;
        enableVless?: boolean | undefined;
        clashCore?: "clash" | "clash.meta" | "stash" | undefined;
    }>>;
    gateway: z.ZodOptional<z.ZodObject<{
        accessToken: z.ZodOptional<z.ZodString>;
        viewerToken: z.ZodOptional<z.ZodString>;
        auth: z.ZodOptional<z.ZodBoolean>;
        cookieMaxAge: z.ZodOptional<z.ZodNumber>;
        useCacheOnError: z.ZodOptional<z.ZodBoolean>;
        passRequestUserAgent: z.ZodOptional<z.ZodBoolean>;
        passRequestHeaders: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodString, "many">>, string[], string[] | undefined>;
    }, "strip", z.ZodTypeAny, {
        passRequestHeaders: string[];
        accessToken?: string | undefined;
        viewerToken?: string | undefined;
        auth?: boolean | undefined;
        cookieMaxAge?: number | undefined;
        useCacheOnError?: boolean | undefined;
        passRequestUserAgent?: boolean | undefined;
    }, {
        accessToken?: string | undefined;
        viewerToken?: string | undefined;
        auth?: boolean | undefined;
        cookieMaxAge?: number | undefined;
        useCacheOnError?: boolean | undefined;
        passRequestUserAgent?: boolean | undefined;
        passRequestHeaders?: string[] | undefined;
    }>>;
    checkHostname: z.ZodOptional<z.ZodBoolean>;
    resolveHostname: z.ZodOptional<z.ZodBoolean>;
    proxyTestUrl: z.ZodOptional<z.ZodString>;
    proxyTestInterval: z.ZodOptional<z.ZodNumber>;
    internetTestUrl: z.ZodOptional<z.ZodString>;
    internetTestInterval: z.ZodOptional<z.ZodNumber>;
    customFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodType<(nodeConfig: import("../types").PossibleNodeConfigType) => boolean, z.ZodTypeDef, (nodeConfig: import("../types").PossibleNodeConfigType) => boolean>, z.ZodType<{
        readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
        readonly supportSort: true;
    }, z.ZodTypeDef, {
        readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
        readonly supportSort: true;
    }>]>>>;
    customParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    analytics: z.ZodOptional<z.ZodBoolean>;
    cache: z.ZodOptional<z.ZodObject<{
        type: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"redis">, z.ZodLiteral<"default">]>>;
        redisUrl: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type?: "default" | "redis" | undefined;
        redisUrl?: string | undefined;
    }, {
        type?: "default" | "redis" | undefined;
        redisUrl?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    artifacts: {
        name: string;
        template: string;
        templateType: "default" | "json";
        provider: string;
        extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
        categories?: string[] | undefined;
        combineProviders?: string[] | undefined;
        customParams?: Record<string, any> | undefined;
        customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
        destDir?: string | undefined;
        destDirs?: string[] | undefined;
        downloadUrl?: string | undefined;
        templateString?: string | undefined;
        subscriptionUserInfoProvider?: string | undefined;
    }[];
    customParams?: Record<string, any> | undefined;
    customFilters?: Record<string, ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
        readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
        readonly supportSort: true;
    }> | undefined;
    resolveHostname?: boolean | undefined;
    surgeConfig?: {
        resolveHostname?: boolean | undefined;
        vmessAEAD?: boolean | undefined;
    } | undefined;
    surfboardConfig?: {
        vmessAEAD?: boolean | undefined;
    } | undefined;
    quantumultXConfig?: {
        vmessAEAD?: boolean | undefined;
    } | undefined;
    clashConfig?: {
        enableTuic?: boolean | undefined;
        enableShadowTls?: boolean | undefined;
        enableHysteria2?: boolean | undefined;
        enableVless?: boolean | undefined;
        clashCore?: "clash" | "clash.meta" | "stash" | undefined;
    } | undefined;
    binPath?: {
        shadowsocksr: string;
    } | undefined;
    remoteSnippets?: {
        name: string;
        url: string;
        surgioSnippet?: boolean | undefined;
    }[] | undefined;
    urlBase?: string | undefined;
    upload?: {
        bucket: string;
        accessKeyId: string;
        accessKeySecret: string;
        endpoint?: string | undefined;
        prefix?: string | undefined;
        region?: string | undefined;
    } | undefined;
    flags?: Record<string, string | RegExp | (string | RegExp)[]> | undefined;
    gateway?: {
        passRequestHeaders: string[];
        accessToken?: string | undefined;
        viewerToken?: string | undefined;
        auth?: boolean | undefined;
        cookieMaxAge?: number | undefined;
        useCacheOnError?: boolean | undefined;
        passRequestUserAgent?: boolean | undefined;
    } | undefined;
    checkHostname?: boolean | undefined;
    proxyTestUrl?: string | undefined;
    proxyTestInterval?: number | undefined;
    internetTestUrl?: string | undefined;
    internetTestInterval?: number | undefined;
    analytics?: boolean | undefined;
    cache?: {
        type?: "default" | "redis" | undefined;
        redisUrl?: string | undefined;
    } | undefined;
}, {
    artifacts: {
        name: string;
        template: string;
        provider: string;
        templateType?: "default" | "json" | undefined;
        extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
        categories?: string[] | undefined;
        combineProviders?: string[] | undefined;
        customParams?: Record<string, any> | undefined;
        customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
        destDir?: string | undefined;
        destDirs?: string[] | undefined;
        downloadUrl?: string | undefined;
        templateString?: string | undefined;
        subscriptionUserInfoProvider?: string | undefined;
    }[];
    customParams?: Record<string, any> | undefined;
    customFilters?: Record<string, ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
        readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
        readonly supportSort: true;
    }> | undefined;
    resolveHostname?: boolean | undefined;
    surgeConfig?: {
        resolveHostname?: boolean | undefined;
        vmessAEAD?: boolean | undefined;
    } | undefined;
    surfboardConfig?: {
        vmessAEAD?: boolean | undefined;
    } | undefined;
    quantumultXConfig?: {
        vmessAEAD?: boolean | undefined;
    } | undefined;
    clashConfig?: {
        enableTuic?: boolean | undefined;
        enableShadowTls?: boolean | undefined;
        enableHysteria2?: boolean | undefined;
        enableVless?: boolean | undefined;
        clashCore?: "clash" | "clash.meta" | "stash" | undefined;
    } | undefined;
    binPath?: {
        shadowsocksr: string;
    } | undefined;
    remoteSnippets?: {
        name: string;
        url: string;
        surgioSnippet?: boolean | undefined;
    }[] | undefined;
    urlBase?: string | undefined;
    upload?: {
        bucket: string;
        accessKeyId: string;
        accessKeySecret: string;
        endpoint?: string | undefined;
        prefix?: string | undefined;
        region?: string | undefined;
    } | undefined;
    flags?: Record<string, string | RegExp | (string | RegExp)[]> | undefined;
    gateway?: {
        accessToken?: string | undefined;
        viewerToken?: string | undefined;
        auth?: boolean | undefined;
        cookieMaxAge?: number | undefined;
        useCacheOnError?: boolean | undefined;
        passRequestUserAgent?: boolean | undefined;
        passRequestHeaders?: string[] | undefined;
    } | undefined;
    checkHostname?: boolean | undefined;
    proxyTestUrl?: string | undefined;
    proxyTestInterval?: number | undefined;
    internetTestUrl?: string | undefined;
    internetTestInterval?: number | undefined;
    analytics?: boolean | undefined;
    cache?: {
        type?: "default" | "redis" | undefined;
        redisUrl?: string | undefined;
    } | undefined;
}>;
