export declare const CONSOLE_LOG_TAIL_LINES = 500; export declare const CONSOLE_LOG_DEFAULT_MAX_BYTES = 204800; export declare const CONSOLE_LOG_MAX_BYTES_LIMIT = 1048576; export declare const CONSOLE_LOG_MAX_MATCHES = 500; export declare const DEFAULT_SNIPPET_LENGTH = 200; export interface ConsoleLogMatch { line: number; text: string; } export interface ConsoleLogResult { jobName: string; buildNumber: number; logSnippet: string; /** Default and paging modes: the returned log text. */ text?: string; truncated: boolean; /** Size of the whole build log in bytes. Only known in default and pattern modes. */ totalBytes?: number; returnedBytes: number; /** Default tail mode: byte offset of the returned text. Paging mode: the requested start. */ startByte?: number; /** Paging mode: byte offset to pass as start to read further. */ nextStart?: number; /** Paging mode: true while the build is still writing the log. */ moreData?: boolean; /** Pattern mode: the pattern as given, and how many lines matched in the whole log. */ pattern?: string; totalMatches?: number; matches?: ConsoleLogMatch[]; } export interface NormalizedBuild { id: string; result: "SUCCESS" | "FAILURE" | "ABORTED" | "RUNNING" | string; durationMs: number; timestamp: string; url: string; } export interface JenkinsCredentials { baseUrl: string; authHeader?: string; /** Per-request deadline in ms. Defaults to DEFAULT_TIMEOUT_MS when omitted. */ timeoutMs?: number; } export interface JenkinsJob { name: string; url: string; } export interface ListJobsOptions { folder?: string; recursive?: boolean; maxDepth?: number; includeFolders?: boolean; } export declare class JenkinsClient { readonly baseUrl: string; readonly timeoutMs: number; private authHeader; private crumb?; private cookies; constructor(credentials?: JenkinsCredentials); private req; private headers; private isJobContainer; listJobs(options?: ListJobsOptions): Promise; getRecentBuilds(jobName: string, limit?: number): Promise; private normalizeBuild; private jobExists; getLastBuild(jobName: string): Promise; getBuild(jobName: string, buildNumber: number): Promise; private logSnippet; private sliceAtLineBoundary; private logTailResult; private logPatternResult; private pagedLogResult; getConsoleLog(jobName: string, buildNumber?: number, options?: { start?: number; maxBytes?: number; pattern?: string; maxSnippetLength?: number; } | number): Promise; private ensureCrumb; private reissueCrumb; private buildNotFoundError; private subResource404Error; triggerBuild(jobName: string, params?: Record, options?: { useDefaults?: boolean; }): Promise<{ jobName: string; queueUrl: string | null; }>; listArtifacts(jobName: string, buildNumber: number): Promise<{ fileName: string; relativePath: string; url: string; size?: number; }[]>; getArtifact(jobName: string, buildNumber: number, relativePath: string): Promise<{ fileName: string; relativePath: string; size: number; base64: string; }>; searchJobs(query: string, options?: ListJobsOptions): Promise; stopBuild(jobName: string, buildNumber: number): Promise<{ jobName: string; buildNumber: number; stopped: boolean; }>; deleteBuild(jobName: string, buildNumber: number): Promise<{ jobName: string; buildNumber: number; deleted: boolean; }>; getTestResults(jobName: string, buildNumber: number): Promise; getQueue(): Promise; cancelQueue(queueId: number): Promise<{ queueId: number; cancelled: boolean; }>; enableJob(jobName: string): Promise<{ jobName: string; enabled: boolean; }>; disableJob(jobName: string): Promise<{ jobName: string; disabled: boolean; }>; deleteJob(jobName: string): Promise<{ jobName: string; deleted: boolean; }>; getJobConfig(jobName: string): Promise<{ jobName: string; config: string; }>; private fetchParameterDefinitions; getJobParameters(jobName: string): Promise<{ jobName: string; parameters: { name: string; type: string; description: string; defaultValue: any; choices?: string[]; }[]; }>; listNodes(): Promise; getSystemInfo(): Promise; getVersion(): Promise<{ version: string; }>; getPlugins(): Promise; getBuildChanges(jobName: string, buildNumber: number): Promise; getPipelineStages(jobName: string, buildNumber: number): Promise; createJob(jobName: string, configXml: string): Promise<{ jobName: string; created: boolean; }>; updateJobConfig(jobName: string, configXml: string): Promise<{ jobName: string; updated: boolean; }>; renameJob(jobName: string, newName: string): Promise<{ oldName: string; newName: string; renamed: boolean; }>; copyJob(fromName: string, newName: string): Promise<{ fromName: string; newName: string; copied: boolean; }>; getNode(nodeName: string): Promise; toggleNodeOffline(nodeName: string, offlineMessage?: string): Promise<{ nodeName: string; toggledOffline: boolean; }>; listViews(): Promise<{ name: string; url: string; jobs: { name: string; url: string; }[]; }[]>; getView(viewName: string): Promise; quietDown(reason?: string): Promise<{ quietingDown: boolean; }>; cancelQuietDown(): Promise<{ quietingDown: boolean; }>; safeRestart(): Promise<{ restarting: boolean; }>; replayBuild(jobName: string, buildNumber: number, mainScript?: string): Promise<{ jobName: string; buildNumber: number; queueUrl: string; }>; } export declare const createClient: () => JenkinsClient; //# sourceMappingURL=jenkins-client.d.ts.map