'use client';

/**
 * @frank-auth/react - Account Linking Components
 *
 * Components for connecting and managing OAuth providers and external accounts,
 * with support for linking, unlinking, and managing connected accounts.
 */
export interface AccountLinkingProps {
    /**
     * Success callback
     */
    onSuccess?: (provider: string, result: any) => void;
    /**
     * Error callback
     */
    onError?: (error: Error) => void;
    /**
     * Custom title
     */
    title?: string;
    /**
     * Custom subtitle
     */
    subtitle?: string;
    /**
     * Component variant
     */
    variant?: 'default' | 'card' | 'modal';
    /**
     * Size
     */
    size?: 'sm' | 'md' | 'lg';
    /**
     * Custom className
     */
    className?: string;
    /**
     * Show only specific providers
     */
    providers?: string[];
    /**
     * Show connection status
     */
    showStatus?: boolean;
    /**
     * Allow unlinking
     */
    allowUnlink?: boolean;
    /**
     * Require minimum connections
     */
    minimumConnections?: number;
}
export interface ConnectedAccountCardProps {
    provider: string;
    account: any;
    onUnlink?: () => void;
    allowUnlink?: boolean;
    isLoading?: boolean;
    showDetails?: boolean;
}
export interface ProviderConnectionButtonProps {
    provider: string;
    isConnected: boolean;
    onConnect: () => void;
    onDisconnect: () => void;
    isLoading: boolean;
    disabled?: boolean;
    allowUnlink?: boolean;
}
export declare function AccountLinking({ onSuccess, onError, title, subtitle, variant, size, className, providers, showStatus, allowUnlink, minimumConnections, }: AccountLinkingProps): import("react/jsx-runtime").JSX.Element;
/**
 * Account Linking Card
 */
export declare function AccountLinkingCard(props: Omit<AccountLinkingProps, 'variant'>): import("react/jsx-runtime").JSX.Element;
/**
 * Simple Provider List (for settings pages)
 */
export declare function ConnectedAccountsList({ allowUnlink, showDetails, onUnlink, }: {
    allowUnlink?: boolean;
    showDetails?: boolean;
    onUnlink?: (provider: string) => void;
}): import("react/jsx-runtime").JSX.Element;
export default AccountLinking;
//# sourceMappingURL=link.d.ts.map