import { z } from "zod";
import type { AgentProvider } from "./agent-sdk-types.js";
export declare const ProviderCommandSchema: z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{
    mode: z.ZodLiteral<"default">;
}, "strict", z.ZodTypeAny, {
    mode: "default";
}, {
    mode: "default";
}>, z.ZodObject<{
    mode: z.ZodLiteral<"append">;
    args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strict", z.ZodTypeAny, {
    mode: "append";
    args?: string[] | undefined;
}, {
    mode: "append";
    args?: string[] | undefined;
}>, z.ZodObject<{
    mode: z.ZodLiteral<"replace">;
    argv: z.ZodArray<z.ZodString, "many">;
}, "strict", z.ZodTypeAny, {
    mode: "replace";
    argv: string[];
}, {
    mode: "replace";
    argv: string[];
}>]>;
export declare const ProviderRuntimeSettingsSchema: z.ZodObject<{
    command: z.ZodOptional<z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{
        mode: z.ZodLiteral<"default">;
    }, "strict", z.ZodTypeAny, {
        mode: "default";
    }, {
        mode: "default";
    }>, z.ZodObject<{
        mode: z.ZodLiteral<"append">;
        args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strict", z.ZodTypeAny, {
        mode: "append";
        args?: string[] | undefined;
    }, {
        mode: "append";
        args?: string[] | undefined;
    }>, z.ZodObject<{
        mode: z.ZodLiteral<"replace">;
        argv: z.ZodArray<z.ZodString, "many">;
    }, "strict", z.ZodTypeAny, {
        mode: "replace";
        argv: string[];
    }, {
        mode: "replace";
        argv: string[];
    }>]>>;
    env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    disallowedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strict", z.ZodTypeAny, {
    command?: {
        mode: "default";
    } | {
        mode: "append";
        args?: string[] | undefined;
    } | {
        mode: "replace";
        argv: string[];
    } | undefined;
    env?: Record<string, string> | undefined;
    disallowedTools?: string[] | undefined;
}, {
    command?: {
        mode: "default";
    } | {
        mode: "append";
        args?: string[] | undefined;
    } | {
        mode: "replace";
        argv: string[];
    } | undefined;
    env?: Record<string, string> | undefined;
    disallowedTools?: string[] | undefined;
}>;
export declare const ProviderProfileModelSchema: z.ZodObject<{
    id: z.ZodString;
    label: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    isDefault: z.ZodOptional<z.ZodBoolean>;
    thinkingOptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        label: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        isDefault: z.ZodOptional<z.ZodBoolean>;
    }, "strict", z.ZodTypeAny, {
        id: string;
        label: string;
        description?: string | undefined;
        isDefault?: boolean | undefined;
    }, {
        id: string;
        label: string;
        description?: string | undefined;
        isDefault?: boolean | undefined;
    }>, "many">>;
}, "strict", z.ZodTypeAny, {
    id: string;
    label: string;
    description?: string | undefined;
    isDefault?: boolean | undefined;
    thinkingOptions?: {
        id: string;
        label: string;
        description?: string | undefined;
        isDefault?: boolean | undefined;
    }[] | undefined;
}, {
    id: string;
    label: string;
    description?: string | undefined;
    isDefault?: boolean | undefined;
    thinkingOptions?: {
        id: string;
        label: string;
        description?: string | undefined;
        isDefault?: boolean | undefined;
    }[] | undefined;
}>;
export declare const ProviderOverrideSchema: z.ZodObject<{
    extends: z.ZodOptional<z.ZodString>;
    label: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    command: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    models: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        label: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        isDefault: z.ZodOptional<z.ZodBoolean>;
        thinkingOptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            label: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
            isDefault: z.ZodOptional<z.ZodBoolean>;
        }, "strict", z.ZodTypeAny, {
            id: string;
            label: string;
            description?: string | undefined;
            isDefault?: boolean | undefined;
        }, {
            id: string;
            label: string;
            description?: string | undefined;
            isDefault?: boolean | undefined;
        }>, "many">>;
    }, "strict", z.ZodTypeAny, {
        id: string;
        label: string;
        description?: string | undefined;
        isDefault?: boolean | undefined;
        thinkingOptions?: {
            id: string;
            label: string;
            description?: string | undefined;
            isDefault?: boolean | undefined;
        }[] | undefined;
    }, {
        id: string;
        label: string;
        description?: string | undefined;
        isDefault?: boolean | undefined;
        thinkingOptions?: {
            id: string;
            label: string;
            description?: string | undefined;
            isDefault?: boolean | undefined;
        }[] | undefined;
    }>, "many">>;
    disallowedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    enabled: z.ZodOptional<z.ZodBoolean>;
    order: z.ZodOptional<z.ZodNumber>;
}, "strict", z.ZodTypeAny, {
    description?: string | undefined;
    label?: string | undefined;
    enabled?: boolean | undefined;
    command?: string[] | undefined;
    env?: Record<string, string> | undefined;
    disallowedTools?: string[] | undefined;
    extends?: string | undefined;
    models?: {
        id: string;
        label: string;
        description?: string | undefined;
        isDefault?: boolean | undefined;
        thinkingOptions?: {
            id: string;
            label: string;
            description?: string | undefined;
            isDefault?: boolean | undefined;
        }[] | undefined;
    }[] | undefined;
    order?: number | undefined;
}, {
    description?: string | undefined;
    label?: string | undefined;
    enabled?: boolean | undefined;
    command?: string[] | undefined;
    env?: Record<string, string> | undefined;
    disallowedTools?: string[] | undefined;
    extends?: string | undefined;
    models?: {
        id: string;
        label: string;
        description?: string | undefined;
        isDefault?: boolean | undefined;
        thinkingOptions?: {
            id: string;
            label: string;
            description?: string | undefined;
            isDefault?: boolean | undefined;
        }[] | undefined;
    }[] | undefined;
    order?: number | undefined;
}>;
export declare const AgentProviderRuntimeSettingsMapSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
    command: z.ZodOptional<z.ZodDiscriminatedUnion<"mode", [z.ZodObject<{
        mode: z.ZodLiteral<"default">;
    }, "strict", z.ZodTypeAny, {
        mode: "default";
    }, {
        mode: "default";
    }>, z.ZodObject<{
        mode: z.ZodLiteral<"append">;
        args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strict", z.ZodTypeAny, {
        mode: "append";
        args?: string[] | undefined;
    }, {
        mode: "append";
        args?: string[] | undefined;
    }>, z.ZodObject<{
        mode: z.ZodLiteral<"replace">;
        argv: z.ZodArray<z.ZodString, "many">;
    }, "strict", z.ZodTypeAny, {
        mode: "replace";
        argv: string[];
    }, {
        mode: "replace";
        argv: string[];
    }>]>>;
    env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    disallowedTools: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strict", z.ZodTypeAny, {
    command?: {
        mode: "default";
    } | {
        mode: "append";
        args?: string[] | undefined;
    } | {
        mode: "replace";
        argv: string[];
    } | undefined;
    env?: Record<string, string> | undefined;
    disallowedTools?: string[] | undefined;
}, {
    command?: {
        mode: "default";
    } | {
        mode: "append";
        args?: string[] | undefined;
    } | {
        mode: "replace";
        argv: string[];
    } | undefined;
    env?: Record<string, string> | undefined;
    disallowedTools?: string[] | undefined;
}>>;
export type ProviderCommand = z.infer<typeof ProviderCommandSchema>;
export type ProviderRuntimeSettings = z.infer<typeof ProviderRuntimeSettingsSchema>;
export type ProviderProfileModel = z.infer<typeof ProviderProfileModelSchema>;
export type ProviderOverride = z.infer<typeof ProviderOverrideSchema>;
export type AgentProviderRuntimeSettingsMap = Partial<Record<AgentProvider, ProviderRuntimeSettings>>;
export type ProviderCommandPrefix = {
    command: string;
    args: string[];
};
export declare function resolveProviderCommandPrefix(commandConfig: ProviderCommand | undefined, resolveDefaultCommand: () => string | Promise<string>): Promise<ProviderCommandPrefix>;
export declare function migrateProviderSettings(raw: Record<string, unknown>, builtinProviderIds: string[]): Record<string, ProviderOverride>;
export declare function applyProviderEnv(baseEnv: Record<string, string | undefined>, runtimeSettings?: ProviderRuntimeSettings): Record<string, string | undefined>;
export declare function isProviderCommandAvailable(commandConfig: ProviderCommand | undefined, resolveDefaultCommand: () => string | Promise<string>): Promise<boolean>;
//# sourceMappingURL=provider-launch-config.d.ts.map