export type BuildStatus = 'succeeded' | 'failed' | 'stopped'; export type Build = { userid: string; warningCount: number; duration: number; startTimestamp: string; isCi: boolean; startTimestampMicroseconds: number; category: string; endTimestampMicroseconds: number; day: string; compilationEndTimestamp: string; tag: string; projectName: string; compilationEndTimestampMicroseconds: number; errorCount: number; id: string; buildStatus: BuildStatus; compilationDuration: number; schema: string; compiledCount: number; endTimestamp: string; userid256: string; machineName: string; wasSuspended: boolean; }; export type BuildStatusResult = Pick; export type BuildCount = { day: string; errors: number; builds: number; }; export type BuildError = { detail: string; characterRangeEnd: number; id: string; endingColumn: number; parentIdentifier: string; day: string; type: string; title: string; endingLine: number; severity: number; startingLine: number; parentType: string; buildIdentifier: string; startingColumn: number; characterRangeStart: number; documentURL: string; }; export type BuildHost = { id: string; swapFreeMb: number; hostOsFamily: string; isVirtual: boolean; uptimeSeconds: number; hostModel: string; hostOsVersion: string; day: string; cpuCount: number; swapTotalMb: number; hostOs: string; hostArchitecture: string; memoryTotalMb: number; timezone: string; cpuModel: string; buildIdentifier: string; memoryFreeMb: number; cpuSpeedGhz: number; }; export type BuildMetadata = { [key: string]: string; }; export type BuildTime = { day: string; durationP50: number; durationP95: number; totalDuration: number; }; export type BuildWarning = { detail: string | null; characterRangeEnd: number; documentURL: string; endingColumn: number; id: string; parentIdentifier: string; day: string; type: string; title: string; endingLine: number; severity: number; startingLine: number; parentType: string; clangFlag: string; startingColumn: number; buildIdentifier: string; characterRangeStart: number; }; export type PaginationResult = { items: T[]; metadata: { per: number; total: number; page: number; }; }; export type Target = { id: string; category: string; startTimestamp: string; compilationEndTimestampMicroseconds: number; endTimestampMicroseconds: number; endTimestamp: string; fetchedFromCache: boolean; errorCount: number; day: string; warningCount: number; compilationEndTimestamp: string; compilationDuration: number; compiledCount: number; duration: number; buildIdentifier: string; name: string; startTimestampMicroseconds: number; }; export type Xcode = { buildNumber: string; id: string; buildIdentifier: string; day: string; version: string; }; export type BuildResponse = { build: Build; targets: Target[]; xcode?: Xcode; }; export type BuildFilters = { from: string; to: string; buildStatus?: BuildStatus; project?: string; }; export interface XcmetricsApi { getBuild(id: string): Promise; getBuilds(limit?: number): Promise; getFilteredBuilds(filters: BuildFilters, page?: number, perPage?: number): Promise>; getBuildErrors(buildId: string): Promise; getBuildCounts(days: number): Promise; getBuildHost(buildId: string): Promise; getBuildMetadata(buildId: string): Promise; getBuildTimes(days: number): Promise; getBuildStatuses(limit: number): Promise; getBuildWarnings(buildId: string): Promise; getProjects(): Promise; } export declare const xcmetricsApiRef: import("@backstage/core-plugin-api").ApiRef;