import { Observable } from 'rxjs'; import { u64 } from "../../types"; import { Hash } from "../../types/interfaces"; import { AnyFunction, Callback, Codec, CodecArg } from "../../types/types"; import StorageKey, { StorageEntry } from "../../types/primitive/StorageKey"; import { ApiTypes, MethodResult, ObsInnerType, PromiseOrObs, UnsubscribePromise } from './base'; export interface AugmentedQueries { } export declare type AugmentedQuery = MethodResult & StorageEntryBase; declare type GenericStorageEntryFunction = (arg1?: CodecArg, arg2?: CodecArg) => Observable; export declare type QueryableStorageEntry = ApiType extends 'rxjs' ? AugmentedQuery<'rxjs', GenericStorageEntryFunction> : AugmentedQuery<'promise', GenericStorageEntryFunction> & StorageEntryPromiseOverloads; export interface StorageEntryBase { at: (hash: Hash | Uint8Array | string, ...args: Parameters) => PromiseOrObs>>; creator: StorageEntry; entries: () => PromiseOrObs>][]>; hash: (...args: Parameters) => PromiseOrObs; key: (...args: Parameters) => string; keyPrefix: () => string; size: (...args: Parameters) => PromiseOrObs; multi: ApiType extends 'rxjs' ? StorageEntryObservableMulti : StorageEntryPromiseMulti; } interface StorageEntryObservableMulti { (args: (CodecArg[] | CodecArg)[]): Observable; } interface StorageEntryPromiseMulti { (args: (CodecArg[] | CodecArg)[]): Promise; (args: (CodecArg[] | CodecArg)[], callback: Callback): UnsubscribePromise; } export interface StorageEntryPromiseOverloads { (arg1?: CodecArg, arg2?: CodecArg): Promise; (arg1?: CodecArg, arg2?: CodecArg): Promise; (callback: Callback): UnsubscribePromise; (arg: CodecArg, callback: Callback): UnsubscribePromise; (arg1: CodecArg, arg2: CodecArg, callback: Callback): UnsubscribePromise; } export interface QueryableModuleStorage { } export declare type QueryableStorageMultiArg = AugmentedQuery | [AugmentedQuery, ...CodecArg[]]; export interface QueryableStorageMultiBase { (calls: QueryableStorageMultiArg[]): Observable; } export interface QueryableStorageMultiPromise { (calls: QueryableStorageMultiArg[], callback: Callback): UnsubscribePromise; } export declare type QueryableStorageMulti = ApiType extends 'rxjs' ? QueryableStorageMultiBase : QueryableStorageMultiPromise; export interface QueryableStorage extends AugmentedQueries { } export {};