import type { StorageEntryMetadataLatest, StorageEntryTypeLatest } from '../interfaces/metadata';
import type { AnyJson, AnyTuple, AnyU8a, InterfaceTypes, IStorageKey, Registry } from '../types';
import type { StorageEntry } from './types';
import { Bytes } from './Bytes';
interface StorageKeyExtra {
method: string;
section: string;
}
/** @internal */
export declare function unwrapStorageType(type: StorageEntryTypeLatest, isOptional?: boolean): keyof InterfaceTypes;
/**
* @name StorageKey
* @description
* A representation of a storage key (typically hashed) in the system. It can be
* constructed by passing in a raw key or a StorageEntry with (optional) arguments.
*/
export declare class StorageKey extends Bytes implements IStorageKey {
private _args;
private _meta?;
private _outputType;
private _method?;
private _section?;
constructor(registry: Registry, value?: AnyU8a | StorageKey | StorageEntry | [StorageEntry, any], override?: Partial);
/**
* @description Return the decoded arguments (applicable to map/doublemap with decodable values)
*/
get args(): A;
/**
* @description The metadata or `undefined` when not available
*/
get meta(): StorageEntryMetadataLatest | undefined;
/**
* @description The key method or `undefined` when not specified
*/
get method(): string | undefined;
/**
* @description The output type
*/
get outputType(): string;
/**
* @description The key section or `undefined` when not specified
*/
get section(): string | undefined;
is(key: IStorageKey): key is IStorageKey;
/**
* @description Sets the meta for this key
*/
setMeta(meta?: StorageEntryMetadataLatest, section?: string, method?: string): this;
/**
* @description Returns the Human representation for this type
*/
toHuman(): AnyJson;
/**
* @description Returns the raw type for this
*/
toRawType(): string;
}
export {};