/// <reference types="react" />
export declare enum AuthMethodType {
    EMAIL = "email",
    PHONE = "phone",
    WALLET_PIN = "wallet_pin",
    CUSTOMER_PASSCODE = "customer_passcode",
    DEVICE_PASSCODE = "device_passcode",
    TEAM_MEMBER = "team_member",
    PASSWORD_RULES = "password_rules",
    GUEST = "guest",
    WALK_IN = "walk_in",
    GOOGLE = "google",
    FACEBOOK = "facebook",
    APPLE = "apple",
    DIGIT_ID_PIN = "digit_id_pin"
}
export declare enum AuthMethodCategory {
    GENERAL = "General",
    PASSWORD_FREE = "Password-free",
    AUTH_FREE = "Auth-free",
    OAUTH = "OAuth"
}
export interface AuthMethod {
    id: string;
    type: AuthMethodType;
    title: string;
    category: AuthMethodCategory;
    description: string;
    icon: React.ReactNode;
    enabled: boolean;
    hasSettings: boolean;
    sort?: number;
    configLink?: string;
    requiresOAuthConfig?: boolean;
    inheritMessage?: string;
    disableToggle?: boolean;
}
export interface AuthMethodsProps {
    /**
     * 自定义类名
     */
    className?: string;
    /**
     * 自定义样式
     */
    style?: React.CSSProperties;
    /**
     * 认证方法列表
     */
    methods?: AuthMethod[];
    /**
     * 顺序变化回调
     */
    onOrderChange?: (methods: AuthMethod[]) => void;
    /**
     * 启用/禁用回调
     */
    onToggle?: (method: AuthMethod, enabled: boolean) => void;
    /**
     * 设置按钮点击回调
     */
    onSettings?: (method: AuthMethod) => void;
    /**
     * 配置链接点击回调
     */
    onConfigClick?: (method: AuthMethod) => void;
    /**
     * 是否启用设置按钮
     * @default true
     */
    enableSetting?: boolean;
    /**
     * 自定义标题渲染函数
     */
    renderTitle?: (method: AuthMethod) => React.ReactNode;
}
