import { Database, Handler, Media, Target } from 'alinea/backend';
import { Drafts } from 'alinea/backend/Drafts';
import { History, Revision } from 'alinea/backend/History';
import { Pending } from 'alinea/backend/Pending';
import { Config, Connection, Draft } from 'alinea/core';
import { EntryRecord } from 'alinea/core/EntryRecord';
import { Mutation } from 'alinea/core/Mutation';
export declare class DebugCloud implements Media, Target, History, Drafts, Pending {
    config: Config;
    db: Database;
    drafts: Map<string, Draft>;
    pending: Array<Connection.MutateParams & {
        toCommitHash: string;
    }>;
    history: History;
    constructor(config: Config, db: Database, rootDir: string);
    mutate(params: Connection.MutateParams): Promise<{
        commitHash: string;
    }>;
    prepareUpload(file: string): Promise<Connection.UploadResponse>;
    revisions(file: string): Promise<Array<Revision>>;
    revisionData(file: string, revision: string): Promise<EntryRecord>;
    getDraft(entryId: string): Promise<Draft | undefined>;
    storeDraft(draft: Draft): Promise<void>;
    pendingSince(commitHash: string): Promise<{
        toCommitHash: string;
        mutations: Array<Mutation>;
    } | undefined>;
}
export declare function createCloudDebugHandler(config: Config, db: Database, rootDir: string): Handler;
