import { URI } from "@adviser/cement"; import { SuperThis } from "@fireproof/core-types-base"; import { SerdeGateway, Gateway } from "@fireproof/core-types-blockstore"; export interface SerdeGatewayFactoryItem { readonly protocol: string; readonly isDefault?: boolean; defaultURI(sthis: SuperThis): URI; serdegateway(sthis: SuperThis): Promise; } export declare function getDefaultURI(sthis: SuperThis, protocol?: string): URI; export interface SerdeOrGatewayFactoryItem { readonly protocol: string; readonly isDefault?: boolean; readonly defaultURI: (sthis: SuperThis) => URI; readonly serdegateway?: (sthis: SuperThis) => Promise; readonly gateway?: (sthis: SuperThis) => Promise; } export declare function registerStoreProtocol(item: SerdeOrGatewayFactoryItem): () => void; export declare function getGatewayFactoryItem(protocol: string): SerdeGatewayFactoryItem | undefined; export declare function defaultGatewayFactoryItem(): SerdeGatewayFactoryItem;