import { ISTSLogger } from '@nsshunt/stsutils';
import { STSWorkerManager, IRunnerEx, IWorkerOptions, IRunnerOptions, IRunnerState, IRunnerSearchFilters } from '@nsshunt/stsrunnerframework';
import { ServerToClientEvents, ClientToServerEvents, IWorkersRetVal, IArchiveListRetVal, IWorkerRetVal, IServiceRetVal, IExecuteWorkerActionResultRetVal, IExecuteRunnerActionResultRetVal } from './wsevents';
import { Socket } from 'socket.io-client';
import { TinyEmitter } from 'tiny-emitter';
export interface IServiceInstanceOptions {
    logger: ISTSLogger;
    name: string;
    ststccendpoint: string;
    workers: number;
    agentManager?: any;
    GetServiceDetails: () => Promise<any>;
    CreateSTSWorkerManager: () => STSWorkerManager;
}
export declare class ServiceInstance extends TinyEmitter {
    #private;
    constructor(options: IServiceInstanceOptions);
    get socket(): Socket<ServerToClientEvents, ClientToServerEvents>;
    get workerManager(): STSWorkerManager;
    get id(): string;
    Stop: () => Promise<void>;
    GetService: () => Promise<IServiceRetVal>;
    GetServiceNoZip: () => Promise<IServiceRetVal>;
    AddRunnerToNextAvailableWorker: (options: IRunnerOptions) => Promise<IRunnerEx | undefined>;
    AddWorker: (options: IWorkerOptions) => Promise<IWorkerRetVal>;
    GetArchiveList: (runnerSearchFilters: IRunnerSearchFilters) => Promise<IArchiveListRetVal>;
    GetArchiveListNoZip: (runnerSearchFilters: IRunnerSearchFilters) => Promise<IArchiveListRetVal>;
    GetWorkers: () => Promise<IWorkersRetVal>;
    GetWorkersNoZip: () => Promise<IWorkersRetVal>;
    GetWorkersSmall: (states: IRunnerState[]) => Promise<IWorkersRetVal>;
    GetWorkersSmallNoZip: (states: IRunnerState[]) => Promise<IWorkersRetVal>;
    StartWorkers: (workerIds: string[]) => Promise<IExecuteWorkerActionResultRetVal>;
    StopWorkers: (workerIds: string[]) => Promise<IExecuteWorkerActionResultRetVal>;
    PauseWorkers: (workerIds: string[]) => Promise<IExecuteWorkerActionResultRetVal>;
    ResumeWorkers: (workerIds: string[]) => Promise<IExecuteWorkerActionResultRetVal>;
    ExecuteWorkers: (workerIds: string[]) => Promise<IExecuteWorkerActionResultRetVal>;
    ResetWorkers: (workerIds: string[]) => Promise<IExecuteWorkerActionResultRetVal>;
    TerminateWorkers: (workerIds: string[]) => Promise<IExecuteWorkerActionResultRetVal>;
    UpdateWorkers: (workerIds: string[], options: Partial<IRunnerOptions>) => Promise<IExecuteWorkerActionResultRetVal>;
    StopRunners: (workerId: string, runnerIds: string[]) => Promise<IExecuteRunnerActionResultRetVal>;
    StartRunners: (workerId: string, runnerIds: string[]) => Promise<IExecuteRunnerActionResultRetVal>;
    PauseRunners: (workerId: string, runnerIds: string[]) => Promise<IExecuteRunnerActionResultRetVal>;
    ResumeRunners: (workerId: string, runnerIds: string[]) => Promise<IExecuteRunnerActionResultRetVal>;
    ExecuteRunners: (workerId: string, runnerIds: string[]) => Promise<IExecuteRunnerActionResultRetVal>;
    ResetRunners: (workerId: string, runnerIds: string[]) => Promise<IExecuteRunnerActionResultRetVal>;
    TerminateRunners: (workerId: string, runnerIds: string[]) => Promise<IExecuteRunnerActionResultRetVal>;
    UpdateRunners: (workerId: string, runnerIds: string[], options: Partial<IRunnerOptions>) => Promise<IExecuteRunnerActionResultRetVal>;
}
//# sourceMappingURL=serviceinstance.d.ts.map