import { Modules, Types } from 'klayr-framework';
import { GovernanceGovernableConfig } from '../config';
import { GovernableConfigRegistry } from '../registry';
import { GovernanceInternalMethod } from '../internal_method';
import { TokenMethod } from '../types';
interface AddDependenciesParam {
    tokenMethod: TokenMethod;
    governableConfigRegistry?: GovernableConfigRegistry;
    internalMethod?: GovernanceInternalMethod;
}
export declare class BaseStoreWithInstance<T> extends Modules.BaseStore<T> {
    constructor(moduleName: string, index: number, stores: Modules.NamedRegistry, events: Modules.NamedRegistry);
    getDefault(): T | undefined;
    getOrDefault(context: Modules.ImmutableStoreGetter, key: Buffer): Promise<T>;
    getOrUndefined(context: Modules.ImmutableStoreGetter, key: Buffer): Promise<T | undefined>;
    addDependencies(params: AddDependenciesParam): void;
    init(genesisConfig: Types.GenesisConfig, governableConfig: GovernanceGovernableConfig): void;
    protected _checkDependencies(): void;
    protected readonly events: Modules.NamedRegistry;
    protected readonly stores: Modules.NamedRegistry;
    protected readonly moduleName: string;
    protected tokenMethod: TokenMethod | undefined;
    protected governableConfigRegistry: GovernableConfigRegistry | undefined;
    protected internalMethod: GovernanceInternalMethod | undefined;
    protected genesisConfig: Types.GenesisConfig | undefined;
    protected config: GovernanceGovernableConfig | undefined;
    protected dependencyReady: boolean;
    protected readonly default: T | undefined;
}
export {};
