/**
 * 外部事件 API composable
 * 用于与外部系统集成的事件订阅/发布机制
 */
export type ExternalEventName = 'ready' | 'metaChange' | 'statusChange' | 'modeChange' | 'abilityChange' | 'contentChange' | 'collabConnectionChange' | 'collabSyncStateChange' | 'collabUsersChange' | 'collabError';
export type ExternalEventHandler<T = unknown> = (payload: T) => void;
export type ExternalEventSubscribeOptions = {
    debounceMs?: number;
    maxWaitMs?: number;
    throttleMs?: number;
};
export declare const onExternalEvent: <T = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T>, options?: ExternalEventSubscribeOptions) => () => void;
export declare const offExternalEvent: <T = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T>) => void;
export declare const emitExternalEvent: <T = unknown>(event: ExternalEventName, payload: T) => void;
export declare const externalApi: {
    on: <T = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T>, options?: ExternalEventSubscribeOptions) => () => void;
    off: <T_1 = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T_1>) => void;
    events: {
        on: <T = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T>, options?: ExternalEventSubscribeOptions) => () => void;
        off: <T_1 = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T_1>) => void;
    };
};
export declare function useExternalApi(): {
    onExternalEvent: <T = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T>, options?: ExternalEventSubscribeOptions | undefined) => () => void;
    offExternalEvent: <T_1 = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T_1>) => void;
    emitExternalEvent: <T_2 = unknown>(event: ExternalEventName, payload: T_2) => void;
    externalApi: {
        on: <T = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T>, options?: ExternalEventSubscribeOptions | undefined) => () => void;
        off: <T_1 = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T_1>) => void;
        events: {
            on: <T = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T>, options?: ExternalEventSubscribeOptions | undefined) => () => void;
            off: <T_1 = unknown>(event: ExternalEventName, handler: ExternalEventHandler<T_1>) => void;
        };
    };
};
