export interface IDevWorkspaceApi {
    listInNamespace(namespace: string): Promise<IDevWorkspace[]>;
    getByName(namespace: string, workspaceName: string): Promise<IDevWorkspace>;
    create(devfile: IDevWorkspaceDevfile, defaultEditor?: string, defaultPlugins?: string[]): Promise<IDevWorkspace>;
    delete(namespace: string, name: string): Promise<void>;
    changeStatus(namespace: string, name: string, started: boolean): Promise<IDevWorkspace>;
    initializeNamespace(namespace: string): Promise<void>;
}
export interface IDevWorkspaceTemplateApi {
    listInNamespace(namespace: string): Promise<IDevWorkspaceTemplate[]>;
    getByName(namespace: string, workspaceName: string): Promise<IDevWorkspaceTemplate>;
    delete(namespace: string, name: string): Promise<void>;
    create(template: IDevWorkspaceTemplate): Promise<IDevWorkspaceTemplate>;
}
export interface IDevWorkspaceClientApi {
    workspaceApi: IDevWorkspaceApi;
    templateApi: IDevWorkspaceTemplateApi;
    isDevWorkspaceApiEnabled(): Promise<boolean>;
}
export interface IDevWorkspace {
    apiVersion: string;
    kind: string;
    metadata: {
        name: string;
        namespace: string;
        creationTimestamp?: string;
        deletionTimestamp?: string;
    };
    spec: {
        started: boolean;
        template: {
            projects?: any;
            components?: any;
            commands?: any;
            events?: any;
        };
    };
    status: {
        ideUrl: string;
        phase: string;
        workspaceId: string;
        message?: string;
    };
}
export interface IDevWorkspaceTemplate {
    apiVersion: string;
    kind: string;
    metadata: {
        name: string;
        namespace: string;
    };
    spec: IDevWorkspaceDevfile;
}
export interface IDevWorkspaceDevfile {
    schemaVersion: string;
    metadata: {
        name: string;
        namespace: string;
        annotations?: {};
    };
    projects?: any;
    components?: any;
    commands?: any;
    events?: any;
}
export interface INodeConfig {
    inCluster: boolean;
}
export interface IKubernetesGroupsModel {
    name: string;
    versions: {
        version: string;
    }[];
}
