/**
 * Async profiler (Java) + pprof (Go) wire types.
 *
 * Async profiler events: CPU, ALLOC, LOCK, WALL, CTIMER, ITIMER.
 * The result graph has multiple `tree` entries — one per distinct
 * JFR event type. The viewer flame-graphs the currently-selected tree.
 *
 * pprof has the same task/progress/analyze shape as async profiler but
 * for Go binaries; the BFF and UI re-use the same payload structures.
 */
export type AsyncProfilingEvent = 'CPU' | 'ALLOC' | 'LOCK' | 'WALL' | 'CTIMER' | 'ITIMER';
export type AsyncJFREventType = 'EXECUTION_SAMPLE' | 'LOCK' | 'OBJECT_ALLOCATION_IN_NEW_TLAB' | 'OBJECT_ALLOCATION_OUTSIDE_TLAB' | 'PROFILER_LIVE_OBJECT';
export interface AsyncProfilingTask {
    id: string;
    serviceId: string;
    serviceInstanceIds: string[];
    createTime: number;
    events: AsyncProfilingEvent[];
    duration: number;
    execArgs?: string;
}
export interface AsyncProfilingProgressLog {
    id: string;
    instanceId: string;
    instanceName: string;
    operationType: string;
    operationTime: number;
}
export interface AsyncProfilingProgress {
    logs: AsyncProfilingProgressLog[];
    errorInstanceIds: string[];
    successInstanceIds: string[];
}
export interface AsyncProfilingStackElement {
    id: string;
    parentId: string;
    symbol: string;
    dumpCount: number;
    self: number;
}
export interface AsyncProfilingTree {
    type: AsyncJFREventType;
    elements: AsyncProfilingStackElement[];
}
export interface AsyncProfilingTaskCreationRequest {
    serviceId: string;
    serviceInstanceIds: string[];
    duration: number;
    events: AsyncProfilingEvent[];
    execArgs?: string;
}
export interface AsyncProfilingTaskListResponse {
    tasks: AsyncProfilingTask[];
    errorReason?: string;
    reachable: boolean;
    error?: string;
}
export interface AsyncProfilingProgressResponse {
    progress: AsyncProfilingProgress | null;
    reachable: boolean;
    error?: string;
}
export interface AsyncProfilingAnalyzeResponse {
    tree: AsyncProfilingTree | null;
    reachable: boolean;
    error?: string;
}
export interface AsyncProfilingTaskCreationResponse {
    id?: string;
    code?: string;
    errorReason?: string;
    reachable: boolean;
    error?: string;
}
export interface PprofTask {
    id: string;
    serviceId: string;
    serviceInstanceIds: string[];
    createTime: number;
    events: string;
    duration?: number;
    dumpPeriod?: number;
}
export interface PprofProgress {
    logs: AsyncProfilingProgressLog[];
    errorInstanceIds: string[];
    successInstanceIds: string[];
}
export interface PprofStackElement {
    id: string;
    parentId: string;
    symbol: string;
    dumpCount: number;
    self: number;
}
export interface PprofTree {
    elements: PprofStackElement[];
}
export interface PprofTaskCreationRequest {
    serviceId: string;
    serviceInstanceIds: string[];
    duration?: number;
    events: string;
    dumpPeriod?: number;
}
export interface PprofTaskListResponse {
    tasks: PprofTask[];
    errorReason?: string;
    reachable: boolean;
    error?: string;
}
export interface PprofProgressResponse {
    progress: PprofProgress | null;
    reachable: boolean;
    error?: string;
}
export interface PprofAnalyzeResponse {
    tree: PprofTree | null;
    reachable: boolean;
    error?: string;
}
export interface PprofTaskCreationResponse {
    id?: string;
    code?: string;
    errorReason?: string;
    reachable: boolean;
    error?: string;
}
//# sourceMappingURL=async-profile.d.ts.map