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>>;
}, "strict", z.ZodTypeAny, {
    command?: {
        mode: "default";
    } | {
        mode: "append";
        args?: string[] | undefined;
    } | {
        mode: "replace";
        argv: string[];
    } | undefined;
    env?: Record<string, string> | undefined;
}, {
    command?: {
        mode: "default";
    } | {
        mode: "append";
        args?: string[] | undefined;
    } | {
        mode: "replace";
        argv: string[];
    } | undefined;
    env?: Record<string, string> | 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>>;
}, "strict", z.ZodTypeAny, {
    command?: {
        mode: "default";
    } | {
        mode: "append";
        args?: string[] | undefined;
    } | {
        mode: "replace";
        argv: string[];
    } | undefined;
    env?: Record<string, string> | undefined;
}, {
    command?: {
        mode: "default";
    } | {
        mode: "append";
        args?: string[] | undefined;
    } | {
        mode: "replace";
        argv: string[];
    } | undefined;
    env?: Record<string, string> | undefined;
}>>;
export type ProviderCommand = z.infer<typeof ProviderCommandSchema>;
export type ProviderRuntimeSettings = z.infer<typeof ProviderRuntimeSettingsSchema>;
export type AgentProviderRuntimeSettingsMap = Partial<Record<AgentProvider, ProviderRuntimeSettings>>;
export type ProviderCommandPrefix = {
    command: string;
    args: string[];
};
export declare function resolveProviderCommandPrefix(commandConfig: ProviderCommand | undefined, resolveDefaultCommand: () => string): ProviderCommandPrefix;
export declare function applyProviderEnv(baseEnv: Record<string, string | undefined>, runtimeSettings?: ProviderRuntimeSettings, shellEnv?: Record<string, string>): Record<string, string | undefined>;
export declare function isProviderCommandAvailable(commandConfig: ProviderCommand | undefined, resolveDefaultCommand: () => string): boolean;
//# sourceMappingURL=provider-launch-config.d.ts.map