import { Store } from 'alinea/backend/Store';
import { Resolver } from 'alinea/core';
import { Config } from './Config.js';
import { Graph, GraphRealm, GraphRealmApi } from './Graph.js';
import { Root } from './Root.js';
import { Workspace } from './Workspace.js';
type Attachment = Workspace | Root;
export interface CMSApi extends GraphRealmApi {
    resolver(): Promise<Resolver>;
}
export declare abstract class CMS extends GraphRealm implements CMSApi {
    #private;
    graph: Graph;
    config: Config;
    constructor(config: Config);
    abstract resolver(): Promise<Resolver>;
    abstract exportStore(cwd: string, store: Uint8Array): Promise<void>;
    abstract readStore(): Promise<Store>;
    get schema(): import("alinea/core").Schema<{}>;
    get workspaces(): Record<string, Workspace>;
}
export declare namespace CMS {
    const Link: unique symbol;
    function instanceFor(attachment: Attachment): CMS;
}
export {};
