import { Dict } from 'tslang';
export interface RawWorkspace {
    /**
     * Workspace ID generated by Remote Workspace.
     */
    id: string;
    /**
     * Display name of this workspace.
     */
    displayName: string;
    /**
     * Owner email of this workspace.
     */
    owner?: string;
    image?: string;
    projects: RawWorkspaceProject[];
    services?: RawWorkspaceService[];
    /**
     * Parameters used to create this workspace with templates, recorded for
     * editing.
     */
    params?: Dict<string>;
}
export interface RawWorkspaceProjectGit {
    url: string;
    /**
     * Branch to checkout from.
     */
    branch?: string;
    /**
     * Branch to create.
     */
    newBranch?: string;
}
export interface RawWorkspaceProjectScripts {
    /**
     * Initialization shell command.
     */
    initialize?: string;
}
export interface RawWorkspaceProjectSSH {
    /**
     * Additional SSH configuration lines for this project, this will be written
     * into client SSH configuration file.
     */
    configs?: string[];
}
export interface RawWorkspaceProject {
    /**
     * Project name, the project folder will be created using this name.
     */
    name: string;
    /**
     * Project Git options.
     */
    git: RawWorkspaceProjectGit;
    /**
     * Project scripts.
     */
    scripts?: RawWorkspaceProjectScripts;
    /**
     * Project SSH options.
     */
    ssh?: RawWorkspaceProjectSSH;
}
export declare type RawWorkspaceProjectInPlaceConfig = Pick<RawWorkspaceProject, 'scripts' | 'ssh'>;
export interface RawWorkspaceService {
    /**
     * Service name, the network alias will be added using this name.
     */
    name: string;
    /**
     * Service image.
     */
    image: string;
}
