import { StrictSchema } from '@based/schema';
import { BasedDbQuery } from './client/query/BasedDbQuery.js';
import { OnClose, OnData, OnError } from './client/query/subscription/types.js';
import { DbServer } from './server/index.js';
import { TransformFns } from './server/migrate/index.js';
import { DbSchema, SchemaChecksum } from './schema.js';
export type DbClientHooks = {
    setSchema(schema: StrictSchema, transformFns?: TransformFns): Promise<SchemaChecksum>;
    flushModify(buf: Uint8Array): Promise<{
        offsets: Record<number, number>;
        dbWriteTime?: number;
    }>;
    getQueryBuf(buf: Uint8Array): Promise<Uint8Array>;
    subscribe(q: BasedDbQuery, onData: (buf: Uint8Array) => ReturnType<OnData>, onError?: OnError): OnClose;
    subscribeSchema(cb: (schema: DbSchema) => void): void;
};
export declare const getDefaultHooks: (server: DbServer, subInterval?: number) => DbClientHooks;
