import type { CommandQualityGate, RateLimitFallbackConfig, StepProviderOptions, WorkflowRuntimeConfig } from '../../core/models/workflow-types.js';
import type { PermissionMode } from '../../core/models/status.js';
import type { ProviderPermissionProfiles } from '../../core/models/provider-profiles.js';
import type { AssistantConfig, WorkflowOverrides, PersonaProviderEntry, PipelineConfig, TaktProviderConfigEntry, TaktProvidersConfig } from '../../core/models/config-types.js';
type RawCommandQualityGate = Omit<CommandQualityGate, 'timeoutMs'> & {
    timeout_ms?: number;
    timeoutMs?: number;
};
type RawQualityGate = string | RawCommandQualityGate;
type RawQualityGateOverride = {
    quality_gates?: RawQualityGate[];
};
export declare function normalizeRuntime(runtime: {
    prepare?: string[];
} | undefined): WorkflowRuntimeConfig | undefined;
export declare function normalizeRateLimitFallback(raw: {
    switch_chain?: Array<{
        provider: RateLimitFallbackConfig['switchChain'][number]['provider'];
        model?: string;
    }>;
} | undefined): RateLimitFallbackConfig | undefined;
export declare function denormalizeRateLimitFallback(config: RateLimitFallbackConfig | undefined): {
    switch_chain: Array<{
        provider: RateLimitFallbackConfig['switchChain'][number]['provider'];
        model?: string;
    }>;
} | undefined;
export declare function normalizeProviderProfiles(raw: Record<string, {
    default_permission_mode: PermissionMode;
    step_permission_overrides?: Record<string, string>;
}> | undefined): ProviderPermissionProfiles | undefined;
export declare function denormalizeProviderProfiles(profiles: ProviderPermissionProfiles | undefined): Record<string, {
    default_permission_mode: string;
    step_permission_overrides?: Record<string, string>;
}> | undefined;
export declare function normalizeWorkflowOverrides(raw: {
    quality_gates?: RawQualityGate[];
    quality_gates_edit_only?: boolean;
    steps?: Record<string, RawQualityGateOverride>;
    personas?: Record<string, RawQualityGateOverride>;
} | undefined): WorkflowOverrides | undefined;
export declare function denormalizeWorkflowOverrides(overrides: WorkflowOverrides | undefined): {
    quality_gates?: RawQualityGate[];
    quality_gates_edit_only?: boolean;
    steps?: Record<string, RawQualityGateOverride>;
    personas?: Record<string, RawQualityGateOverride>;
} | undefined;
export declare function normalizePersonaProviders(raw: Record<string, string | {
    type?: string;
    provider?: string;
    model?: string;
    provider_options?: Record<string, unknown>;
}> | undefined): Record<string, PersonaProviderEntry> | undefined;
export declare function denormalizePersonaProviders(personaProviders: Record<string, PersonaProviderEntry> | undefined): Record<string, Record<string, unknown>> | undefined;
export declare function normalizePipelineConfig(raw: {
    default_branch_prefix?: string;
    commit_message_template?: string;
    pr_body_template?: string;
} | undefined): PipelineConfig | undefined;
export declare function normalizeAssistantConfig(raw: {
    init_files?: string[];
} | undefined): AssistantConfig | undefined;
export declare function denormalizeAssistantConfig(config: AssistantConfig | undefined): {
    init_files: string[];
} | undefined;
export declare function normalizeTaktProviders(raw: {
    assistant?: {
        provider?: TaktProviderConfigEntry['provider'];
        model?: string;
    };
} | undefined): TaktProvidersConfig | undefined;
export declare function normalizeTaktAssistantProvider(assistant: {
    provider?: TaktProviderConfigEntry['provider'];
    model?: string;
} | undefined): TaktProviderConfigEntry | undefined;
export declare function buildRawTaktProvidersOrThrow(taktProviders: TaktProvidersConfig | undefined): {
    assistant: TaktProviderConfigEntry;
} | undefined;
export declare function denormalizeProviderOptions(providerOptions: StepProviderOptions | undefined): Record<string, unknown> | undefined;
export {};
//# sourceMappingURL=configNormalizers.d.ts.map