import type { IKdaDefinition } from "../types.js";
type OwnerId = string;
type OpenRequestListener = (definition: IKdaDefinition) => void;
/**
 * Lightweight in-memory arbiter to prevent multiple {@link KdaDialogController} instances from opening at once.
 *
 * @remarks
 * This is an internal short-term mitigation. Ideal solution is a single host.
 */
export declare class KdaDialogArbiter {
    private static instance;
    static getInstance(): KdaDialogArbiter;
    private activeOwnerId;
    private openRequestListeners;
    private constructor();
    registerOwner(ownerId: OwnerId, onOpenRequested: OpenRequestListener): () => void;
    tryAcquire(ownerId: OwnerId): boolean;
    requestOpen(ownerId: OwnerId, definition: IKdaDefinition): boolean;
    release(ownerId: OwnerId): void;
}
export {};
//# sourceMappingURL=KdaDialogArbiter.d.ts.map