import type { ClaudeEffort, ClaudeTerminalProviderOptions, CodexReasoningEffort, CopilotEffort, StepProviderOptions } from '../../core/models/workflow-types.js';
import type { PersonaProviderEntry } from '../../core/models/config-types.js';
import type { ProviderOptionsOriginResolver, ProviderOptionsSource, ProviderOptionsTraceOrigin, ProviderResolutionSource } from '../../core/workflow/provider-options-trace.js';
import type { ProviderType } from '../../shared/types/provider.js';
type RawProviderOptions = {
    codex?: {
        network_access?: boolean;
        reasoning_effort?: CodexReasoningEffort;
    };
    opencode?: {
        network_access?: boolean;
        variant?: string;
    };
    claude?: {
        allowed_tools?: string[];
        effort?: ClaudeEffort;
        sandbox?: {
            allow_unsandboxed_commands?: boolean;
            excluded_commands?: string[];
        };
    };
    claude_terminal?: {
        backend?: ClaudeTerminalProviderOptions['backend'];
        timeout_ms?: number;
        keep_session?: boolean;
        transcript_poll_interval_ms?: number;
    };
    copilot?: {
        effort?: CopilotEffort;
    };
};
/** Convert raw YAML provider_options (snake_case) to internal format (camelCase). */
export declare function normalizeProviderOptions(raw: RawProviderOptions | Record<string, unknown> | undefined): StepProviderOptions | undefined;
/** Deep merge provider options. Later sources override earlier ones. */
export declare function mergeProviderOptions(...layers: (StepProviderOptions | undefined)[]): StepProviderOptions | undefined;
export declare function resolveProviderOptionOrigin(resolver: ProviderOptionsOriginResolver | undefined, path: string, fallbackSource: ProviderOptionsSource | undefined): ProviderOptionsTraceOrigin;
export declare function resolvePersonaProviderOptions(personaProviders: Record<string, PersonaProviderEntry> | undefined, personaDisplayName: string | undefined): StepProviderOptions | undefined;
export declare function resolveEffectiveProviderOptions(source: ProviderOptionsSource | undefined, originResolver: ProviderOptionsOriginResolver | undefined, resolvedConfigOptions: StepProviderOptions | undefined, stepOptions: StepProviderOptions | undefined, personaOptions?: StepProviderOptions): StepProviderOptions | undefined;
export declare function resolveEffectiveTeamLeaderPartProviderOptions(source: ProviderOptionsSource | undefined, originResolver: ProviderOptionsOriginResolver | undefined, resolvedConfigOptions: StepProviderOptions | undefined, stepOptions: StepProviderOptions | undefined, resolvedProvider: ProviderType | undefined, partAllowedTools: string[] | undefined, personaOptions?: StepProviderOptions): StepProviderOptions | undefined;
/** All paths we expose for per-option source attribution. */
export declare const PROVIDER_OPTION_PATHS: readonly ["claude.effort", "claude.allowedTools", "claude.sandbox.allowUnsandboxedCommands", "claude.sandbox.excludedCommands", "codex.networkAccess", "codex.reasoningEffort", "opencode.networkAccess", "opencode.variant", "copilot.effort", "claudeTerminal.backend", "claudeTerminal.timeoutMs", "claudeTerminal.keepSession", "claudeTerminal.transcriptPollIntervalMs"];
export type ProviderOptionPath = (typeof PROVIDER_OPTION_PATHS)[number];
/**
 * Resolve the source layer of a single provider_options path, mirroring
 * `selectProviderValue` precedence (env/cli config beats step/persona,
 * otherwise step > persona > config).
 */
export declare function resolveProviderOptionSource(path: string, stepOptions: StepProviderOptions | undefined, personaOptions: StepProviderOptions | undefined, configOptions: StepProviderOptions | undefined, originResolver: ProviderOptionsOriginResolver | undefined, configSource: ProviderOptionsSource | undefined): ProviderResolutionSource | undefined;
/** Compute source per known provider_options path. Returns only paths with values. */
export declare function resolveProviderOptionsSources(stepOptions: StepProviderOptions | undefined, personaOptions: StepProviderOptions | undefined, configOptions: StepProviderOptions | undefined, originResolver: ProviderOptionsOriginResolver | undefined, configSource: ProviderOptionsSource | undefined): Record<string, ProviderResolutionSource>;
export {};
//# sourceMappingURL=providerOptions.d.ts.map