import type { ProviderUsageResponse } from '../../types/api';
export declare const authMixin: {
    getAuthStatus(): Promise<{
        onboardingComplete: boolean;
        setu: {
            configured: boolean;
            publicKey?: string;
        };
        providers: Record<string, {
            configured: boolean;
            type?: "api" | "oauth" | "wallet";
            label: string;
            supportsOAuth: boolean;
            modelCount: number;
            costRange?: {
                min: number;
                max: number;
            };
        }>;
        defaults: {
            agent: string;
            provider: string;
            model: string;
            toolApproval?: "auto" | "dangerous" | "all";
        };
    }>;
    setupSetuWallet(): Promise<{
        success: boolean;
        publicKey: string;
        isNew: boolean;
    }>;
    importSetuWallet(privateKey: string): Promise<{
        success: boolean;
        publicKey: string;
    }>;
    exportSetuWallet(): 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;
    }>;
    startCopilotDeviceFlow(): Promise<{
        sessionId: string;
        userCode: string;
        verificationUri: string;
        interval: number;
    }>;
    pollCopilotDeviceFlow(sessionId: string): Promise<{
        status: "complete" | "pending" | "error";
        error?: string;
    }>;
    getProviderUsage(provider: string): Promise<ProviderUsageResponse>;
};
//# sourceMappingURL=auth.d.ts.map