import { BaseGatewayConfig, CloneFactory, GatewayPrincipal } from '../index.js';
import { IoRemotes } from '@m-ld/m-ld/ext/socket.io';
import { Who } from '../server/index.js';
import { RemotesAuthType } from '../server/Account.js';
export declare class IoCloneFactory extends CloneFactory {
    /**
     * Set if the socket.io server address is known
     * @type {string}
     */
    private address?;
    clone(config: BaseGatewayConfig, dataDir: string, principal?: GatewayPrincipal): Promise<[import("@m-ld/m-ld").MeldClone, import("../index.js").BackendLevel]>;
    initialise(address: string): void;
    remotes(): typeof IoRemotes;
    reusableConfig(config: BaseGatewayConfig, remotesAuth: RemotesAuthType[], who?: Who): Promise<Partial<BaseGatewayConfig>>;
    private ioConfig;
}
