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 CloudApi implements Media, Target, History, Pending, Drafts {
    private config;
    constructor(config: Config);
    mutate(params: Connection.MutateParams, ctx: Connection.Context): Promise<{
        commitHash: string;
    }>;
    prepareUpload(file: string, ctx: Connection.Context): Promise<Connection.UploadResponse>;
    revisions(file: string, ctx: Connection.Context): Promise<Array<Revision>>;
    revisionData(file: string, ref: string, ctx: Connection.Context): Promise<EntryRecord>;
    pendingSince(commitHash: string, ctx: Connection.Context): Promise<{
        toCommitHash: string;
        mutations: Array<Mutation>;
    } | undefined>;
    storeDraft(draft: Draft, ctx: Connection.Context): Promise<void>;
    getDraft(entryId: string, ctx: Connection.Context): Promise<Draft | undefined>;
}
export declare function createCloudHandler(config: Config, db: Database, apiKey: string | undefined): Handler;
