import * as ablyModule from '@m-ld/m-ld/ext/ably';
import { BaseGatewayConfig, CloneFactory, GatewayPrincipal } from '../lib/index.js';
import { Who } from '../server/index.js';
import { RemotesAuthType } from '../server/Account.js';
type AblyGatewayConfig = BaseGatewayConfig & ablyModule.MeldAblyConfig;
export declare class AblyCloneFactory extends CloneFactory {
    initialise(address: string): void;
    clone(config: AblyGatewayConfig, dataDir: string, principal?: GatewayPrincipal): Promise<[import("@m-ld/m-ld").MeldClone, import("../lib/CloneFactory.js").BackendLevel]>;
    remotes(config: AblyGatewayConfig): Promise<typeof ablyModule.AblyRemotes>;
    reusableConfig(config: BaseGatewayConfig, remotesAuth: RemotesAuthType[], who?: Who): Promise<Partial<BaseGatewayConfig>>;
}
export {};
