import type { TraceProcessorService } from './traceProcessorService';
export type WakerKind = 'irq' | 'swapper' | 'thread' | 'unknown';
export interface WakerHop {
    threadStateId: number | null;
    utid: number | null;
    tid: number | null;
    threadName: string | null;
    processName: string | null;
    state: string | null;
    cpu: number | null;
    irqContext: boolean;
    kind: WakerKind;
    hints: string[];
}
export interface WakerChainResult {
    available: boolean;
    hop: WakerHop | null;
    warnings: string[];
}
declare function classifyWaker(threadName: string | null, tid: number | null, irqContext: boolean): WakerKind;
export interface ResolveWakerOptions {
    threadStateId: number;
}
/**
 * Resolve the direct waker for a given thread_state row id. Returns a single
 * hop (NOT a recursive chain) annotated with IRQ/swapper context.
 *
 * Failure modes:
 *  - thread_state row missing → available=false, warning
 *  - waker_id is NULL (no recorded waker) → available=true, hop=null
 *  - SQL error → available=false, warning
 */
export declare function resolveDirectWaker(tp: TraceProcessorService, traceId: string, options: ResolveWakerOptions): Promise<WakerChainResult>;
export declare const __INTERNAL__: {
    classifyWaker: typeof classifyWaker;
};
export {};
//# sourceMappingURL=criticalPathWakerChain.d.ts.map