import type { Client } from '@web3-storage/w3up-client';
import type { DownloadDataFnParams, DownloadMetaFnParams, UploadDataFnParams, UploadMetaFnParams } from './types';
import { Connection } from './connection';
import { MemoryBlockstore } from '@alanshaw/pail/block';
import { Proof } from '@ucanto/interface';
import { CarClockHead } from './connect-ipfs';
export declare abstract class AbstractConnectIPFS extends Connection {
    eventBlocks: MemoryBlockstore;
    parents: CarClockHead;
    abstract authorizedClient(): Promise<Client>;
    abstract clockProofsForDb(): Promise<Proof[]>;
    abstract clockSpaceDIDForDb(): `did:${string}:${string}`;
    issuer(client: Client): import("@ucanto/interface").Signer<`did:key:${string}`, import("@ucanto/interface").SigAlg>;
    dataDownload(params: DownloadDataFnParams): Promise<Uint8Array>;
    dataUpload(bytes: Uint8Array, params: UploadDataFnParams, opts: {
        public?: boolean;
    }): Promise<import("@web3-storage/w3up-client/dist/src/types").AnyLink>;
    metaDownload(params: DownloadMetaFnParams): Promise<Uint8Array[]>;
    metaUpload(bytes: Uint8Array, params: UploadMetaFnParams): Promise<Uint8Array[]>;
    fetchAndUpdateHead(remoteHead: CarClockHead): Promise<Uint8Array[]>;
}
export declare abstract class DatabaseConnectIPFS extends AbstractConnectIPFS {
    activated: boolean | null;
    authorizing: Promise<void>;
    authorizingComplete: () => void;
    authorizingFailed: (reason: string) => void;
    constructor();
    startBackgroundSync(): Promise<void>;
    abstract initializeClient(): Promise<void>;
    clockProofsForDb(): Promise<any[]>;
}
