import { RegisterStep, RegisterFlowData, RegisterFlowConfig, getStepDefinition } from '../shared/registerFlow';
import type { AuthMethodType } from '../shared/types';
export interface UseRegisterFlowOptions {
    /** 账号类型 */
    accountType: AuthMethodType;
    /** 邮箱配置 */
    emailConfig?: {
        enable_email?: boolean;
        require_email_verification?: boolean;
    };
    /** 手机配置 */
    phoneConfig?: {
        enable_phone_number?: boolean;
        require_phone_verification?: boolean;
    };
    /** 初始账号 */
    initialAccount?: string;
    /** 步骤变化回调 */
    onStepChange?: (step: RegisterStep, data: RegisterFlowData) => void;
    /** 完成回调 */
    onComplete?: (data: RegisterFlowData) => void;
}
export interface UseRegisterFlowReturn {
    /** 当前流程数据 */
    flowData: RegisterFlowData;
    /** 当前步骤定义 */
    currentStepDef: ReturnType<typeof getStepDefinition>;
    /** 流程配置 */
    flowConfig: RegisterFlowConfig;
    /** 跳转到指定步骤 */
    goToStep: (step: RegisterStep, updates?: Partial<RegisterFlowData>) => void;
    /** 更新流程数据 */
    updateFlowData: (updates: Partial<RegisterFlowData>) => void;
    /** 重置流程 */
    resetFlow: () => void;
    /** 处理错误 */
    handleError: (code: string, message: string, targetStep?: RegisterStep) => void;
}
export declare function useRegisterFlow(options: UseRegisterFlowOptions): UseRegisterFlowReturn;
