import * as plugins from '../plugins.js';
import * as data from '../data/index.js';
export interface IWorkspaceShellCommand {
    command: string;
    args?: string[];
    label?: string;
    prompt?: string;
}
export interface IReq_WorkspaceReadFile extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_WorkspaceReadFile> {
    method: 'workspaceReadFile';
    request: {
        identity: data.IIdentity;
        serviceName: string;
        path: string;
    };
    response: {
        content: string;
    };
}
export interface IReq_WorkspaceWriteFile extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_WorkspaceWriteFile> {
    method: 'workspaceWriteFile';
    request: {
        identity: data.IIdentity;
        serviceName: string;
        path: string;
        content: string;
    };
    response: {};
}
export interface IReq_WorkspaceReadDir extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_WorkspaceReadDir> {
    method: 'workspaceReadDir';
    request: {
        identity: data.IIdentity;
        serviceName: string;
        path: string;
    };
    response: {
        entries: Array<{
            type: 'file' | 'directory';
            name: string;
            path: string;
        }>;
    };
}
export interface IReq_WorkspaceMkdir extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_WorkspaceMkdir> {
    method: 'workspaceMkdir';
    request: {
        identity: data.IIdentity;
        serviceName: string;
        path: string;
    };
    response: {};
}
export interface IReq_WorkspaceRm extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_WorkspaceRm> {
    method: 'workspaceRm';
    request: {
        identity: data.IIdentity;
        serviceName: string;
        path: string;
        recursive?: boolean;
    };
    response: {};
}
export interface IReq_WorkspaceExists extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_WorkspaceExists> {
    method: 'workspaceExists';
    request: {
        identity: data.IIdentity;
        serviceName: string;
        path: string;
    };
    response: {
        exists: boolean;
    };
}
export interface IReq_WorkspaceExec extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_WorkspaceExec> {
    method: 'workspaceExec';
    request: {
        identity: data.IIdentity;
        serviceName: string;
        command: string;
        args?: string[];
    };
    response: {
        stdout: string;
        stderr: string;
        exitCode: number;
    };
}
export interface IReq_WorkspaceGetShellCommand extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_WorkspaceGetShellCommand> {
    method: 'workspaceGetShellCommand';
    request: {
        identity: data.IIdentity;
        serviceName: string;
    };
    response: {
        shellCommand: IWorkspaceShellCommand;
    };
}
export interface IReq_WorkspaceStartProcess extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_WorkspaceStartProcess> {
    method: 'workspaceStartProcess';
    request: {
        identity: data.IIdentity;
        serviceName: string;
        processId: string;
        command: string;
        args?: string[];
    };
    response: {
        processId: string;
    };
}
export interface IReq_WorkspaceProcessInput extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_WorkspaceProcessInput> {
    method: 'workspaceProcessInput';
    request: {
        identity: data.IIdentity;
        processId: string;
        input: string;
    };
    response: {};
}
export interface IReq_WorkspaceKillProcess extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_WorkspaceKillProcess> {
    method: 'workspaceKillProcess';
    request: {
        identity: data.IIdentity;
        processId: string;
    };
    response: {};
}
export interface IReq_PushWorkspaceProcessOutput extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_PushWorkspaceProcessOutput> {
    method: 'pushWorkspaceProcessOutput';
    request: {
        processId: string;
        output: string;
    };
    response: {};
}
export interface IReq_PushWorkspaceProcessExit extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_PushWorkspaceProcessExit> {
    method: 'pushWorkspaceProcessExit';
    request: {
        processId: string;
        exitCode: number;
    };
    response: {};
}
