import type { CreatableProviderFactory, ProviderFactoryLocatorInstance } from '../../protocol-sdk/index.js';
import type { RpcTransport, XyoSignerRpcSchemas } from '../../rpc/index.js';
import type { BasicRestViewerLocatorOptions, RestRemoteConfig } from './basicRestViewerLocator.js';
/** Public contract for Basic Rest Runner Locator Options. */
export interface BasicRestRunnerLocatorOptions extends BasicRestViewerLocatorOptions {
    /** Supplemental mutation-provider factories registered with the locator. */
    additionalRunnerProviders?: CreatableProviderFactory[];
    /**
     * HTTP RPC endpoint used for mempool submission (`MempoolRunner` / `XyoRunner` broadcast).
     * Reads still come from the REST/S3 static layout; only the write path hits this URL.
     */
    rpcUrl: string;
    /**
     * Signing provider for a caller that owns an actual signer (typically an `XyoSignerWrapper`).
     * Mutually exclusive with `signerTransport` — supply exactly one. When both are present,
     * `signerFactory` wins.
     */
    signerFactory?: CreatableProviderFactory;
    /**
     * RPC transport to a remote signer, for callers that don't own a signer (e.g. injected pages
     * whose gateway carries a signer transport). Registers a `JsonRpcXyoSigner` over the transport.
     * Mutually exclusive with `signerFactory`.
     */
    signerTransport?: RpcTransport<XyoSignerRpcSchemas>;
    /** Whether locator construction omits the aggregate gateway runner. */
    skipGatewayRunner?: boolean;
}
/**
 * Builds a locator for a REST/S3-backed **write-capable** gateway:
 * - Read path: same as {@link basicRestViewerLocator} (static S3 CDN files).
 * - Write path: `JsonRpcMempoolRunner` + `JsonRpcXyoRunner` against `options.rpcUrl`.
 * - Signing: injected via `options.signerFactory` (typically an `XyoSignerWrapper`).
 *
 * Mirrors {@link basicRemoteRunnerLocator} but keeps chain reads off RPC.
 */
export declare function basicRestRunnerLocator(name: string, restConfig: RestRemoteConfig, dataLakeEndpoint: string | undefined, options: BasicRestRunnerLocatorOptions): Promise<ProviderFactoryLocatorInstance>;
//# sourceMappingURL=basicRestRunnerLocator.d.ts.map