import type { ProviderUsageResponse } from '../../types/api';
export declare const authMixin: {
    getAuthStatus(): Promise<{
        onboardingComplete: boolean;
        ottorouter: {
            configured: boolean;
            publicKey?: string;
        };
        providers: Record<string, {
            configured: boolean;
            type?: "api" | "oauth" | "wallet";
            label: string;
            supportsOAuth: boolean;
            supportsToken?: boolean;
            supportsGhImport?: boolean;
            custom?: boolean;
            modelCount: number;
            costRange?: {
                min: number;
                max: number;
            };
        }>;
        defaults: {
            agent: string;
            provider: string;
            model: string;
            toolApproval?: "auto" | "dangerous" | "all" | "yolo";
        };
    }>;
    setupOttoRouterWallet(): Promise<{
        success: boolean;
        publicKey: string;
        isNew: boolean;
    }>;
    importOttoRouterWallet(privateKey: string): Promise<{
        success: boolean;
        publicKey: string;
    }>;
    exportOttoRouterWallet(): Promise<{
        success: boolean;
        publicKey: string;
        privateKey: string;
    }>;
    addProvider(provider: string, apiKey: string): Promise<{
        success: boolean;
        provider: string;
    }>;
    removeProvider(provider: string): Promise<{
        success: boolean;
        provider: string;
    }>;
    completeOnboarding(): Promise<{
        success: boolean;
    }>;
    getOAuthStartUrl(provider: string, mode?: string): string;
    getOAuthUrl(provider: string, mode?: string): Promise<{
        url: string;
        sessionId: string;
        provider: string;
    }>;
    exchangeOAuthCode(provider: string, code: string, sessionId: string): Promise<{
        success: boolean;
        provider: string;
    }>;
    startOpenAIDeviceFlow(): Promise<{
        sessionId: string;
        userCode: string;
        verificationUri: string;
        interval: number;
    }>;
    pollOpenAIDeviceFlow(sessionId: string): Promise<{
        status: "complete" | "pending" | "error";
        error?: string;
    }>;
    startCopilotDeviceFlow(): Promise<{
        sessionId: string;
        userCode: string;
        verificationUri: string;
        interval: number;
    }>;
    pollCopilotDeviceFlow(sessionId: string): Promise<{
        status: "complete" | "pending" | "error";
        error?: string;
    }>;
    startKimiDeviceFlow(): Promise<{
        sessionId: string;
        userCode: string;
        verificationUri: string;
        interval: number;
    }>;
    pollKimiDeviceFlow(sessionId: string): Promise<{
        status: "complete" | "pending" | "error";
        error?: string;
    }>;
    getCopilotAuthMethods(): Promise<{
        oauth: boolean;
        token: boolean;
        ghImport: {
            available: boolean;
            authenticated: boolean;
            reason?: string;
        };
    }>;
    saveCopilotToken(token: string): Promise<{
        success: boolean;
        provider: string;
        source: "token";
        modelCount: number;
        hasGpt52Codex: boolean;
        sampleModels: string[];
    }>;
    importCopilotTokenFromGh(): Promise<{
        success: boolean;
        provider: string;
        source: "gh";
        modelCount: number;
        hasGpt52Codex: boolean;
        sampleModels: string[];
    }>;
    getCopilotDiagnostics(): Promise<{
        tokenSources: Array<{
            source: "env" | "stored";
            configured: boolean;
            modelCount?: number;
            hasGpt52Codex?: boolean;
            sampleModels?: string[];
            restrictedByOrgPolicy?: boolean;
            restrictedOrg?: string;
            restrictionMessage?: string;
            error?: string;
        }>;
        methods: {
            oauth: boolean;
            token: boolean;
            ghImport: {
                available: boolean;
                authenticated: boolean;
                reason?: string;
            };
        };
    }>;
    getProviderUsage(provider: string): Promise<ProviderUsageResponse>;
};
//# sourceMappingURL=auth.d.ts.map