import type { XyoGateway, XyoGatewayRunner, XyoSigner } from '@xyo-network/xl1-protocol/protocol-lib';
import type { CreatableProviderFactory } from '../protocol-sdk/index-node.js';
import type { BlockValidators } from '../providers/index.js';
/**
 * Fluent builder for client-side XL1 gateways. Hides the locator system from
 * 3rd parties so they can spin up a XyoGateway (read-only) or XyoGatewayRunner
 * (transacting) without touching ProviderFactoryLocator, connection config, or any
 * JsonRpc transport plumbing.
 *
 * @example
 * const gateway = await new GatewayBuilder()
 *   .rpcUrl('https://rpc.xl1.example')
 *   .build()
 *
 * @example
 * const runner = await new GatewayBuilder()
 *   .rpcUrl('https://rpc.xl1.example')
 *   .build(mySigner)
 */
export declare class GatewayBuilder {
    private _additionalProviders;
    private _additionalRunnerProviders;
    private _dataLakeEndpoint;
    private _name;
    private _rpc;
    private _validators;
    additionalProviders(factories: CreatableProviderFactory[]): this;
    additionalRunnerProviders(factories: CreatableProviderFactory[]): this;
    build(): Promise<XyoGateway>;
    build(signer: XyoSigner): Promise<XyoGatewayRunner>;
    dataLakeEndpoint(endpoint: string): this;
    name(name: string): this;
    postMessage(networkId: string, sessionId: string): this;
    rpcUrl(url: string): this;
    validators(validators: BlockValidators): this;
}
//# sourceMappingURL=GatewayBuilder.d.ts.map