import type { KaijiBotConfig } from "../config/types.js";
import type { SecretInput } from "../config/types.secrets.js";
import type { WizardPrompter } from "../wizard/prompts.js";
import type { SecretInputMode } from "./provider-auth-types.js";
export { extractEnvVarFromSourceLabel, promptSecretRefForSetup, resolveRefFallbackInput, type SecretRefSetupPromptCopy, } from "./provider-auth-ref.js";
export { resolveSecretInputModeForEnvSelection, type SecretInputModePromptCopy, } from "./provider-auth-mode.js";
export declare function normalizeApiKeyInput(raw: string): string;
export declare const validateApiKeyInput: (value: string) => "Required" | undefined;
export declare function formatApiKeyPreview(raw: string, opts?: {
    head?: number;
    tail?: number;
}): string;
export declare function normalizeTokenProviderInput(tokenProvider: string | null | undefined): string | undefined;
export declare function normalizeSecretInputModeInput(secretInputMode: string | null | undefined): SecretInputMode | undefined;
export declare function maybeApplyApiKeyFromOption(params: {
    token: string | undefined;
    tokenProvider: string | undefined;
    secretInputMode?: SecretInputMode;
    expectedProviders: string[];
    normalize: (value: string) => string;
    setCredential: (apiKey: SecretInput, mode?: SecretInputMode) => Promise<void>;
}): Promise<string | undefined>;
export declare function ensureApiKeyFromOptionEnvOrPrompt(params: {
    token: string | undefined;
    tokenProvider: string | undefined;
    secretInputMode?: SecretInputMode;
    config: KaijiBotConfig;
    env?: NodeJS.ProcessEnv;
    expectedProviders: string[];
    provider: string;
    envLabel: string;
    promptMessage: string;
    normalize: (value: string) => string;
    validate: (value: string) => string | undefined;
    prompter: WizardPrompter;
    setCredential: (apiKey: SecretInput, mode?: SecretInputMode) => Promise<void>;
    noteMessage?: string;
    noteTitle?: string;
}): Promise<string>;
export declare function ensureApiKeyFromEnvOrPrompt(params: {
    config: KaijiBotConfig;
    env?: NodeJS.ProcessEnv;
    provider: string;
    envLabel: string;
    promptMessage: string;
    normalize: (value: string) => string;
    validate: (value: string) => string | undefined;
    prompter: WizardPrompter;
    secretInputMode?: SecretInputMode;
    setCredential: (apiKey: SecretInput, mode?: SecretInputMode) => Promise<void>;
}): Promise<string>;
