import { DescribeTable, TaskList } from '@neo-one/server-plugin';
import { Observable } from 'rxjs';
import { ProjectResource } from './ProjectResource';
import { Project, ProjectResourceOptions, ProjectResourceType } from './ProjectResourceType';
export interface ProjectResourceAdapterInitOptions {
    readonly resourceType: ProjectResourceType;
    readonly name: string;
    readonly dataPath: string;
}
export interface ProjectResourceAdapterStaticOptions extends ProjectResourceAdapterInitOptions {
}
export interface ProjectResourceAdapterOptions {
    readonly projectResource: ProjectResource;
}
export declare class ProjectResourceAdapter {
    static create({ resourceType, name, dataPath }: ProjectResourceAdapterInitOptions, { rootDir, sourceMaps }: ProjectResourceOptions): TaskList;
    static init({ resourceType, name, dataPath, }: ProjectResourceAdapterInitOptions): Promise<ProjectResourceAdapter>;
    readonly projectResource: ProjectResource;
    readonly resource$: Observable<Project>;
    constructor({ projectResource }: ProjectResourceAdapterOptions);
    destroy(): Promise<void>;
    delete(_options: ProjectResourceOptions): TaskList;
    start(_options: ProjectResourceOptions): TaskList;
    stop(_options: ProjectResourceOptions): TaskList;
    getDebug(): DescribeTable;
}
