/**
 * 通用错误处理辅助工具
 *
 * 提供统一的错误创建和处理机制，支持实例化配置
 */
import { ErrorModuleCode } from '../imports';
import { FcrError } from './error';
/**
 * 控制器类型枚举
 */
export declare enum ControllerType {
    USER = "user",
    STREAM = "stream",
    ROOM_SESSION = "room session",
    CHAT_ROOM = "chat room",
    PRIVILEGE = "privilege",
    ROOM_CONNECTOR = "room connector",
    ABILITY = "ability",
    SHARING = "sharing",
    WHITEBOARD = "whiteboard",
    MONITOR = "monitor",
    MEDIA = "media",
    STT = "stt",
    REMOTE_CONTROL = "remote control",
    APPLICATION = "application",
    WIDGET = "widget"
}
/**
 * 错误处理配置接口
 */
export interface FcrErrorHelperConfig {
    /** 默认模块代码 */
    defaultModuleCode?: ErrorModuleCode;
    /** 是否启用详细错误信息 */
    enableDetailedMessages?: boolean;
    /** 错误日志前缀 */
    logPrefix?: string;
    /** 是否自动记录错误 */
    autoLog?: boolean;
}
/**
 * 错误处理助手类 - 支持实例化配置
 */
export declare class FcrErrorHelper {
    private config;
    constructor(config?: FcrErrorHelperConfig);
    /**
     * 生成控制器未初始化错误
     * @param controllerType 控制器类型
     * @param moduleCode 模块错误码
     * @returns FcrError
     */
    createControllerNotInitializedError(controllerType: ControllerType, moduleCode?: ErrorModuleCode): FcrError;
    /**
     * 生成操作冲突错误
     * @param operation 操作名称
     * @param reason 冲突原因
     * @param moduleCode 模块错误码
     * @returns FcrError
     */
    createOperationConflictError(operation: string, reason: string, moduleCode?: ErrorModuleCode): FcrError;
    /**
     * 生成操作取消错误
     * @param operation 操作名称
     * @param moduleCode 模块错误码
     * @returns FcrError
     */
    createOperationCanceledError(operation: string, moduleCode?: ErrorModuleCode): FcrError;
    /**
     * 生成消息发送错误
     * @param originalError 原始错误
     * @param moduleCode 模块错误码
     * @returns FcrError
     */
    createSendMessageError(originalError: Error, moduleCode?: ErrorModuleCode): FcrError;
    /**
     * 生成通用操作错误
     * @param operation 操作类型
     * @param originalError 原始错误
     * @param moduleCode 模块错误码
     * @returns FcrError
     */
    createOperationError(operation: string, originalError?: Error, moduleCode?: ErrorModuleCode): FcrError;
    /**
     * 生成网络请求相关错误
     * @param message 错误消息
     * @param moduleCode 模块错误码
     * @returns FcrError
     */
    createNetworkError(message: string, moduleCode?: ErrorModuleCode): FcrError;
    /**
     * 生成参数无效错误
     * @param paramName 参数名
     * @param reason 无效原因
     * @param moduleCode 模块错误码
     * @returns FcrError
     */
    createInvalidParamsError(paramName: string, reason: string, moduleCode?: ErrorModuleCode): FcrError;
    /**
     * 生成房间加入冲突错误的便捷方法
     */
    createJoinConflictError(isAlreadyJoined: boolean): FcrError;
    /**
     * 静态工厂方法 - 创建默认实例
     */
    static createDefault(): FcrErrorHelper;
    /**
     * 为房间控制创建专用实例
     */
    static forRoomControl(): FcrErrorHelper;
    /**
     * 为引擎创建专用实例
     */
    static forEngine(): FcrErrorHelper;
    /**
     * 为直播创建专用实例
     */
    static forLiveStreaming(): FcrErrorHelper;
}
/**
 * 预配置的错误处理器实例
 */
export declare const defaultErrorHelper: FcrErrorHelper;
export declare const roomControlErrorHelper: FcrErrorHelper;
export declare const engineErrorHelper: FcrErrorHelper;
export declare const liveStreamingErrorHelper: FcrErrorHelper;
