import { ConnectionOptions, Consumer, NatsError, Subscription, SubscriptionOptions } from 'nats.ws'; import { RunnerUpdateRequest } from './requestDTOs'; import { ISession, ISessionMetricInfo, Image, MetadataUpdatedEvent, RepositoryPackageReference, RunnerStatus, SaveDefaultSettings, Session } from './DTOs'; import { BaseClient } from './BaseClient'; export declare class RunnerClient extends BaseClient { private runnerId; default: { startSession: (testPlanRepositoryReference?: RepositoryPackageReference, timeout?: number) => Promise; startSessionWithOverriddenImage: (testPlanReference?: RepositoryPackageReference, imageOverride?: Image, timeout?: number) => Promise; getImage: () => Promise; setImage: (image: Image) => Promise; getSettings: () => Promise; setSettings: (repositoryPackageReference: RepositoryPackageReference) => Promise; saveDefaultSettings: (defaultSettings: SaveDefaultSettings) => Promise; }; constructor(baseSubject: string, options: ConnectionOptions); /** * Get the logs zip file from the server. * @returns {{Promise}} * @description The logs zip file contains the logs from the server. */ getLogsZip(): Promise; /** * Get the created image with the specified ID. * @param imageId * @returns {{Promise}} */ getImage(imageId: string): Promise; /** * Get all created images * @returns {{Promise}} */ getImages(): Promise; /** * Get all sessions * @returns {{Promise}} */ getSessions(): Promise; setSession(session: ISession): Promise; /** * Create a OpenTAP package configuration image from a list image inputs consisting of user specified packages and repositories. * @param {Image[]} images List of images * @param {number} timeout Optional timeout in milliseconds * @returns {{Promise}} */ resolveImage(images: Image[], timeout?: number): Promise; /** * Dry runs to resolve an image from a list of images. Dry run means that no packages will be downloaded. * @param {Image[]} images List of images * @param {number} timeout Optional timeout in milliseconds * @returns {{Promise}} */ resolveImageDryRun(images: Image[], timeout?: number): Promise; /** * Shut down a session * @param sessionId the ID of the session to shut down * @param force When true, the Runner terminates the session subprocess immediately without attempting a graceful shutdown. * @returns {{Promise}} */ shutdownSession(sessionId: string, force?: boolean): Promise; /** * Start a session * @returns {{Promise}} */ startSession(): Promise; /** * Get the session manager image. * @returns {{Promise}} */ getSessionManagerImage(): Promise; /** * Start a session based on an image. * @param imageId * @returns {{Promise}} */ startImageSession(image: Image): Promise; /** * Update the `Runner` plugin to the given version * @param runnerUpdateRequest * @returns {{Promise}} */ updateRunner(runnerUpdateRequest: RunnerUpdateRequest): Promise; /** * Subscribe to the MetadataUpdated event * @param {(event:MetadataUpdatedEvent|undefined,err:NatsError|Error|null)=>void} handler * @param {SubscriptionOptions} options? * @returns Subscription */ connectMetadataUpdatedEvents(handler: (event: MetadataUpdatedEvent | undefined, err: NatsError | Error | null) => void, options?: SubscriptionOptions): Subscription; /** * Connect to metrics published for the given SessionMetricInfo from the idle session * @param {ISessionMetricInfo} metricInfo * @param {(result:MetricValue|undefined,err:NatsError|Error|null)=>void} handler * @param {SubscriptionOptions} options? * @returns Subscription */ connectMetric(metricInfo: ISessionMetricInfo, inactiveThresholdMilliseconds: number, maxBatchSize: number, handler: (metricData: { encodedMetrics: Uint8Array[]; timestamps: number[]; }) => void): Promise; /** * Gets the runner status * @return Promise */ getStatus(): Promise; }