import { DBInfo } from '@huolala-tech/page-spy-types/lib/database';
import { SpyDatabase, PageSpyPlugin, OnInitParams } from '@huolala-tech/page-spy-types';
import { InitConfig } from '../config';
export declare function promisify<T = any>(req: IDBRequest<T>): Promise<T>;
export declare class DatabasePlugin implements PageSpyPlugin {
    name: string;
    static hasInitd: boolean;
    originAdd: IDBObjectStore['add'] | null;
    originPut: IDBObjectStore['put'] | null;
    originDelete: IDBObjectStore['delete'] | null;
    originClear: IDBObjectStore['clear'] | null;
    originDrop: IDBFactory['deleteDatabase'] | null;
    static get isSupport(): boolean;
    $pageSpyConfig: InitConfig | null;
    onInit({ config }: OnInitParams<InitConfig>): void;
    onReset(): void;
    listenEvents(): void;
    initIndexedDBProxy(): void;
    takeBasicInfo(): Promise<DBInfo[] | null>;
    getDBData(info: Required<IDBDatabaseInfo>): Promise<DBInfo | null>;
    getStoreDataWithPagination({ db, store, page, }: {
        db: string;
        store: string;
        page: number;
    }): Promise<SpyDatabase.GetTypeDataItem>;
    sendData(info: Omit<SpyDatabase.DataItem, 'id'>): void;
}
