import { ChainMap, ChainName } from '../types.js';
export declare class MultiGeneric<Value> {
    readonly chainMap: ChainMap<Value>;
    constructor(chainMap: ChainMap<Value>);
    /**
     * Get value for a chain
     * @throws if chain is invalid or has not been set
     */
    protected get(chain: ChainName): Value;
    /**
     * Get value for a chain
     * @returns value or null if chain value has not been set
     */
    protected tryGet(chain: ChainName): Value | null;
    /**
     * Set value for a chain
     * @throws if chain is invalid or has not been set
     */
    protected set(chain: ChainName, value: Value): Value;
    chains(): ChainName[];
    forEach(fn: (n: ChainName, dc: Value) => void): void;
    map<Output>(fn: (n: ChainName, dc: Value) => Output): ChainMap<Output>;
    remoteChains(name: ChainName): Promise<ChainName[]>;
    knownChain(chain: ChainName): boolean;
}
//# sourceMappingURL=MultiGeneric.d.ts.map