import type React from "react";
export interface OAuthHandlerConfig {
    provider: string;
    code?: string;
    state?: string;
    error?: string;
}
export interface OAuthProviderConfig {
    id: string;
    name: string;
    icon: React.ReactNode;
    authUrl?: string;
    color?: string;
    customAuth?: {
        type: "popup" | "redirect" | "challenge";
        handler: (config: OAuthHandlerConfig) => Promise<{
            success: boolean;
            encryptedBackup?: string;
            idKey?: string;
            error?: string;
        }>;
    };
}
export declare const googleProvider: OAuthProviderConfig;
export declare const githubProvider: OAuthProviderConfig;
export declare const twitterProvider: OAuthProviderConfig;
export declare const handcashProvider: OAuthProviderConfig;
export declare const yoursWalletProvider: OAuthProviderConfig;
export declare const defaultProviders: OAuthProviderConfig[];
export declare function registerOAuthProvider(provider: OAuthProviderConfig): void;
export declare function getOAuthProvider(id: string): OAuthProviderConfig | undefined;
export declare function getAllOAuthProviders(): OAuthProviderConfig[];
export declare function buildOAuthUrl(provider: OAuthProviderConfig, params: {
    clientId: string;
    redirectUri: string;
    state?: string;
    scope?: string;
}): string;
export declare function handleOAuthCallback(config: OAuthHandlerConfig): Promise<{
    success: boolean;
    encryptedBackup?: string;
    idKey?: string;
    error?: string;
}>;
//# sourceMappingURL=oauth-providers.d.ts.map