import type { Hash, Promisable, PromisableArray } from '@ariestools/sdk';
import type { NextOptions, Sequence } from '@xyo-network/sdk';
import { type DataLakeData, type DataLakeRunnerMethods, type DataLakeViewerMethods } from '@xyo-network/xl1-protocol/protocol-lib';
import type { DataLakePageRpcSchemas, RpcTransport } from '../../rpc/index.js';
/**
 * Shared base for page-side data lake providers. Holds the wallet-mediated
 * JSON-RPC transport and the opaque per-origin lake `id`, and provides the
 * read-side implementations (`get`, `next`) common to viewers and runners.
 * Not constructable on its own — instantiate {@link DataLakePageViewer} or
 * {@link DataLakePageRunner} depending on the granted capability.
 */
export declare abstract class AbstractDataLakePageProvider {
    protected readonly id: string;
    protected readonly transport: RpcTransport<DataLakePageRpcSchemas>;
    /** Creates an instance with the supplied configuration. */
    constructor(transport: RpcTransport<DataLakePageRpcSchemas>, id: string);
    /** Returns get. */
    get(hashes: Hash[]): Promise<DataLakeData[]>;
    /** Returns the next result exposed by this provider. */
    next(_options?: NextOptions<Sequence>): PromisableArray<DataLakeData>;
}
/**
 * Read-only page-side data lake provider — proxies `get` (and `next` once
 * implemented) through the wallet's JSON-RPC transport. Bound to a single
 * approved lake `id`; construct one instance per `viewer`-capability grant.
 */
export declare class DataLakePageViewer extends AbstractDataLakePageProvider implements DataLakeViewerMethods {
    /** Moniker implemented by this provider instance. */
    readonly moniker: "DataLakeViewer";
}
/**
 * Read/write page-side data lake provider — adds `insert` (and `clear` /
 * `delete` once implemented) on top of the viewer surface. Requires the
 * wallet grant to include the `runner` capability. Bound to a single
 * approved lake `id`.
 */
export declare class DataLakePageRunner extends AbstractDataLakePageProvider implements DataLakeRunnerMethods {
    /** Moniker implemented by this provider instance. */
    readonly moniker: "DataLakeRunner";
    /** Removes data through the clear operation. */
    clear(): Promisable<void>;
    /** Removes data through the delete operation. */
    delete(_hashes: Hash[]): PromisableArray<DataLakeData>;
    /** Submits the insert operation to its backing provider. */
    insert(items: DataLakeData[]): Promise<DataLakeData[]>;
}
//# sourceMappingURL=PageProvider.d.ts.map