import type { Hash, PromisableArray } from '@ariestools/sdk';
import type { NextOptions, Schema, Sequence } from '@xyo-network/sdk';
import type { DataLakeData, DataLakeViewer, MapTypeRead } from '@xyo-network/xl1-protocol/protocol-lib';
import { AbstractCreatableProvider, type CreatableProviderParams } from '../../CreatableProvider/index.js';
/** Parameters for AbstractSimpleDataLake. */
export interface AbstractSimpleDataLakeParams<TMap extends MapTypeRead<Hash, DataLakeData> = MapTypeRead<Hash, DataLakeData>> extends CreatableProviderParams {
    /** Payload schemas that the provider permits. */
    allowedSchemas?: Schema[];
    /** Payload schemas that the provider rejects. */
    disallowedSchemas?: Schema[];
    /** map configuration or state exposed by this contract. */
    map: TMap;
}
/** Abstract base class for SimpleDataLake implementations. */
export declare abstract class AbstractSimpleDataLake<TParams extends AbstractSimpleDataLakeParams = AbstractSimpleDataLakeParams> extends AbstractCreatableProvider<TParams> implements Omit<DataLakeViewer, 'moniker'> {
    /** Returns the allowed schemas result exposed by this provider. */
    get allowedSchemas(): Schema[] | undefined;
    /** Returns the disallowed schemas result exposed by this provider. */
    get disallowedSchemas(): Schema[] | undefined;
    protected get map(): TParams['map'];
    /** Returns get. */
    get(hashes: Hash[]): Promise<DataLakeData[]>;
    /** Returns the next result exposed by this provider. */
    next(_options?: NextOptions<Sequence>): PromisableArray<DataLakeData>;
    protected isAllowed(value: DataLakeData | undefined): boolean;
    protected isAllowedSchema(schema: Schema): boolean;
}
//# sourceMappingURL=AbstractSimpleDataLake.d.ts.map