import { BitAccount } from './BitAccount';
import { RemoteTxBuilder } from './builders/RemoteTxBuilder';
import { BitNetwork, DWebProtocol } from './const';
import { BitIndexer } from './fetchers/BitIndexer';
import { BitAccountListItem, KeyInfo } from './fetchers/BitIndexer.type';
import { BitSigner } from './signers/BitSigner';
import { BitPluginBase } from './types';
interface CacheProvider {
    get: (key: string, options?: any) => any;
    set: (key: string, value: any, options?: any) => any;
}
export interface DotBitConfig {
    network?: BitNetwork;
    cacheProvider?: CacheProvider;
    bitIndexer?: BitIndexer;
    bitBuilder?: RemoteTxBuilder;
    signer?: BitSigner;
}
export declare class DotBit {
    #private;
    version: string;
    network: BitNetwork;
    cacheProvider: CacheProvider;
    bitIndexer: BitIndexer;
    bitBuilder: RemoteTxBuilder;
    signer: BitSigner;
    plugins: BitPluginBase[];
    constructor(config?: DotBitConfig);
    installPlugin(plugin: BitPluginBase): void;
    uninstallPlugin(plugin: BitPluginBase): void;
    private getAccount;
    serverInfo(): Promise<import("./fetchers/BitIndexer.type").DasServerInfo>;
    reverse(keyInfo: KeyInfo): Promise<BitAccount | undefined>;
    alias(keyInfo: KeyInfo): Promise<BitAccount | undefined>;
    accountsOfOwner(keyInfo: KeyInfo): Promise<BitAccountListItem[]>;
    accountsOfManager(keyInfo: KeyInfo): Promise<BitAccountListItem[]>;
    account(account: string): BitAccount;
    exist(account: string): Promise<boolean>;
    accountById(accountId: string): Promise<BitAccount>;
    records(account: string, key?: string): Promise<import("./fetchers/BitIndexer.type").BitAccountRecordExtended[]>;
    accountInfo(account: string): Promise<import("./fetchers/BitIndexer.type").AccountInfo>;
    addresses(account: string, chain?: string): Promise<import("./fetchers/BitIndexer.type").BitAccountRecordAddress[]>;
    addrs(account: string, chain?: string): Promise<import("./fetchers/BitIndexer.type").BitAccountRecordAddress[]>;
    dwebs(account: string, key?: DWebProtocol): Promise<import("./fetchers/BitIndexer.type").BitAccountRecordExtended[]>;
    dweb(account: string): Promise<import("./fetchers/BitIndexer.type").BitAccountRecordExtended | undefined>;
    profiles(account: string, key?: string): Promise<import("./fetchers/BitIndexer.type").BitAccountRecordExtended[]>;
    avatar(account: string): Promise<{
        linkage: {
            type: string;
            content: string;
        }[];
        url: string;
    } | null>;
    verifyAddrsByAccount(address: string, mainAccount: string, subAccount?: string, verifyType?: number): Promise<boolean>;
    validDotbitAliasAddresses(account: string): Promise<import("./fetchers/BitIndexer.type").BitKeyInfo[]>;
    batchAccountInfo(accounts: string[]): Promise<import("./fetchers/BitIndexer.type").BatchAccountInfo[]>;
    dobList(keyInfo: KeyInfo, didType?: number, page?: number, size?: number): Promise<import("./fetchers/BitIndexer.type").DobInfo[]>;
}
export {};
