import { type ChildProcess } from "node:child_process";
import type { ProviderAuthCapabilities, ProviderId, ProviderLoginResult, ProviderLogoutResult } from "./contracts.js";
export declare const NO_PROVIDER_AUTH: ProviderAuthCapabilities;
export declare const DEVICE_PROVIDER_AUTH: ProviderAuthCapabilities;
export declare function unsupportedLogin(providerId: ProviderId, message: string): ProviderLoginResult;
export declare function unsupportedLogout(providerId: ProviderId, message: string): ProviderLogoutResult;
export declare function parseCommandLine(commandLine: string): {
    command: string;
    args: string[];
};
export declare function stripAnsi(value: string): string;
export declare function buildProviderAuthEnv(overrides?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
export declare function extractDeviceAuthDetails(output: string): {
    verificationUri?: string;
    userCode?: string;
    requiresCodeInput?: boolean;
    inputPrompt?: string;
};
export declare function runAuthCommand(providerId: ProviderId, commandLine: string, args: string[], timeoutMs?: number): Promise<ProviderLogoutResult>;
export declare function startDeviceLoginCommand(options: {
    providerId: ProviderId;
    label: string;
    commandLine: string;
    args: string[];
    env?: NodeJS.ProcessEnv;
    timeoutMs?: number;
}): Promise<{
    result: ProviderLoginResult;
    child?: ChildProcess;
}>;
export declare function killChildTree(child: ChildProcess): void;
//# sourceMappingURL=provider-auth.d.ts.map