import { CMS } from 'alinea/core/CMS';
import type { Config } from 'alinea/core/Config';
import type { UploadResponse } from 'alinea/core/Connection';
import type { Mutation } from 'alinea/core/db/Mutation';
import type { GraphQuery } from 'alinea/core/Graph';
import type { User } from 'alinea/core/User';
export interface PreviewProps {
    widget?: boolean;
    workspace?: string;
    root?: string;
}
export declare class NextCMS<Definition extends Config = Config> extends CMS<Definition> {
    #private;
    constructor(config: Definition);
    resolve<Query extends GraphQuery>(query: Query): Promise<any>;
    user(): Promise<User | undefined>;
    mutate(mutations: Array<Mutation>): Promise<{
        sha: string;
    }>;
    prepareUpload(file: string): Promise<UploadResponse>;
    previews: ({ widget, workspace, root }: PreviewProps) => Promise<import("react/jsx-runtime").JSX.Element | null>;
}
export declare function createCMS<Definition extends Config>(config: Definition): NextCMS<Definition>;
