import type { GlobalMetadata, MetadataEvent } from '../metadata';
export type IPCClientConfig = {
    appspace: string;
    clientId: string | undefined;
    serverId: string | undefined;
    globalMetadata: GlobalMetadata;
};
export declare class IPCClient {
    private readonly _ipc;
    private readonly _serverId;
    private _startPromise?;
    private _stopPromise?;
    private _queue;
    private _connection?;
    private _globalMetadata;
    constructor(config: IPCClientConfig);
    get id(): string;
    start(): Promise<void>;
    stop(): Promise<void>;
    enqueue(event: MetadataEvent): void;
    flush(modifier?: 'first' | 'last'): Promise<void>;
    private _doStart;
    private _doStop;
}
