import { Contents, Drive, ServerConnection } from '@jupyterlab/services';
import { ISignal } from '@lumino/signaling';
interface IContentEvent {
    task: string;
}
export interface ILoadJupyterContentEvent extends IContentEvent {
    task: 'loadFile';
    fileData: object | undefined;
    fileName: string;
}
export interface ISavedJupyterContentEvent extends IContentEvent {
    task: 'savedFile';
    fileName: string;
}
export type IContentEventType = ILoadJupyterContentEvent | ISavedJupyterContentEvent;
type IModel = Contents.IModel;
export declare class FailsDrive implements Contents.IDrive {
    constructor(options: Drive.IOptions);
    dispose(): void;
    get isDisposed(): boolean;
    get name(): string;
    get serverSettings(): ServerConnection.ISettings;
    get fileChanged(): ISignal<Contents.IDrive, Contents.IChangedArgs>;
    getDownloadUrl(path: string): Promise<string>;
    onMessage(event: IContentEventType): Promise<any>;
    get(path: string, options?: Contents.IFetchOptions): Promise<IModel>;
    save(path: string, options?: Partial<Contents.IModel>): Promise<Contents.IModel>;
    newUntitled(options?: Contents.ICreateOptions): Promise<IModel>;
    rename(oldLocalPath: string, newLocalPath: string): Promise<IModel>;
    delete(path: string): Promise<void>;
    copy(path: string, toDir: string): Promise<IModel>;
    createCheckpoint(path: string): Promise<Contents.ICheckpointModel>;
    listCheckpoints(path: string): Promise<Contents.ICheckpointModel[]>;
    restoreCheckpoint(path: string, checkpointID: string): Promise<void>;
    deleteCheckpoint(path: string, checkpointID: string): Promise<void>;
    static EMPTY_NB: {
        metadata: {
            orig_nbformat: number;
        };
        nbformat_minor: number;
        nbformat: number;
        cells: never[];
    };
    private _fileContent;
    private _isDisposed;
    private _fileChanged;
    private _fileName;
    private _serverSettings;
}
export {};
