import { AmagakiProjectTypeApi, ApiProjectTypes, DeviceData, EditorFileData, EmptyData, FileData, GrowProjectTypeApi, LiveEditorApiComponent, PartialData, ProjectData, PublishResult, WorkspaceData } from '../editor/api';
/**
 * Example api that returns data through a 'simulated' network.
 */
export declare class ExampleApi implements LiveEditorApiComponent {
    errorController: ErrorController;
    workflow: WorkspaceWorkflow;
    projectTypes: ApiProjectTypes;
    constructor();
    checkAuth(): boolean;
    copyFile(originalPath: string, path: string): Promise<FileData>;
    createFile(path: string): Promise<FileData>;
    createWorkspace(base: WorkspaceData, workspace: string): Promise<WorkspaceData>;
    deleteFile(file: FileData): Promise<EmptyData>;
    getDevices(): Promise<Array<DeviceData>>;
    getFile(file: FileData): Promise<EditorFileData>;
    getFiles(): Promise<Array<FileData>>;
    getFileUrl(file: FileData): Promise<FileData>;
    getProject(): Promise<ProjectData>;
    getWorkspace(): Promise<WorkspaceData>;
    getWorkspaces(): Promise<Array<WorkspaceData>>;
    loadWorkspace(workspace: WorkspaceData): Promise<WorkspaceData>;
    publish(workspace: WorkspaceData, data?: Record<string, any>): Promise<PublishResult>;
    saveFile(file: EditorFileData, isRawEdit: boolean): Promise<EditorFileData>;
    uploadFile(file: File, meta?: Record<string, any>): Promise<FileData>;
}
export declare class ExampleAmagakiApi implements AmagakiProjectTypeApi {
    errorController: ErrorController;
    constructor(errorController: ErrorController);
    getPartials(): Promise<Record<string, PartialData>>;
}
export declare class ExampleGrowApi implements GrowProjectTypeApi {
    errorController: ErrorController;
    constructor(errorController: ErrorController);
    getPartials(): Promise<Record<string, PartialData>>;
    getStrings(): Promise<Record<string, any>>;
}
export declare class ErrorController {
    errorMethods: Set<string>;
    constructor();
    makeError(methodName: string): Set<string>;
    makeSuccess(methodName: string): boolean;
    shouldError(methodName: string): boolean;
    toggleError(methodName: string): void;
}
export declare enum WorkspaceWorkflow {
    Failure = "failure",
    NoChanges = "noChanges",
    NoPublish = "noPublish",
    Pending = "pending",
    Success = "success",
    SuccessNoFields = "successNoFields",
    SuccessChangeWorkspace = "successChangeWorkspace"
}
