import type { Transport } from './transport/base';
import { type WireProfile } from './wire_profile';
export interface CrossRealmClientOptions {
    localRoot: string;
    transport: Transport;
    profile?: WireProfile;
    defaultTimeoutMs?: number;
    shard?: string;
    /** @deprecated Use localRoot */
    localRealm?: string;
}
export declare class CrossRealmClient {
    private readonly localRoot;
    private readonly transport;
    private readonly profile;
    private readonly defaultTimeoutMs;
    private readonly _shard;
    private started;
    private unsubscribeFns;
    private readyPromise;
    private pending;
    constructor(opts: CrossRealmClientOptions);
    start(): void;
    stop(): void;
    invoke<T = unknown>(toRoot: string, toPath: string, body: unknown, timeoutMs?: number): Promise<T>;
    invokeUri<T = unknown>(uri: string, body: unknown, timeoutMs?: number): Promise<T>;
    private onIngress;
    private publishLocalMailboxFallback;
    private tryHandleDirectReply;
    private resolvePending;
}
//# sourceMappingURL=cross_realm_client.d.ts.map