lighthouse
Version:
Automated auditing, performance metrics, and best practices for the web.
81 lines • 3.12 kB
TypeScript
export default WorkDuringInteraction;
export type EventTimingEvent = import("../computed/metrics/responsiveness.js").EventTimingEvent;
export type TaskNode = import("../lib/tracehouse/main-thread-tasks.js").TaskNode;
/**
* @fileoverview This metric gives a high-percentile measure of responsiveness to input.
*/
declare class WorkDuringInteraction extends Audit {
/**
* @param {TaskNode} task
* @param {TaskNode|undefined} parent
* @param {number} startTs
* @param {number} endTs
* @return {number}
*/
static recursivelyClipTasks(task: TaskNode, parent: TaskNode | undefined, startTs: number, endTs: number): number;
/**
* Clip the tasks by the start and end points. Take the easy route and drop
* to duration 0 if out of bounds, since only durations are needed in the
* end (for now).
* Assumes owned tasks, so modifies in place. Can be called multiple times on
* the same `tasks` because always computed from original event timing.
* @param {Array<TaskNode>} tasks
* @param {number} startTs
* @param {number} endTs
*/
static clipTasksByTs(tasks: Array<TaskNode>, startTs: number, endTs: number): void;
/**
* @param {EventTimingEvent} interactionEvent
*/
static getPhaseTimes(interactionEvent: EventTimingEvent): {
inputDelay: {
startTs: number;
endTs: number;
};
processingDuration: {
startTs: number;
endTs: number;
};
presentationDelay: {
startTs: number;
endTs: number;
};
};
/**
* @param {EventTimingEvent} interactionEvent
* @param {LH.Trace} trace
* @param {LH.Artifacts.ProcessedTrace} processedTrace
* @param {Array<LH.Artifacts.NetworkRequest>} networkRecords
* @return {{table: LH.Audit.Details.Table, phases: Record<string, {startTs: number, endTs: number}>}}
*/
static getThreadBreakdownTable(interactionEvent: EventTimingEvent, trace: LH.Trace, processedTrace: LH.Artifacts.ProcessedTrace, networkRecords: Array<LH.Artifacts.NetworkRequest>): {
table: LH.Audit.Details.Table;
phases: Record<string, {
startTs: number;
endTs: number;
}>;
};
/**
* @param {LH.Artifacts['TraceElements']} traceElements
* @return {LH.Audit.Details.Table | undefined}
*/
static getTraceElementTable(traceElements: LH.Artifacts["TraceElements"]): LH.Audit.Details.Table | undefined;
/**
* @param {LH.Artifacts} artifacts
* @param {LH.Audit.Context} context
* @return {Promise<LH.Audit.Product>}
*/
static audit(artifacts: LH.Artifacts, context: LH.Audit.Context): Promise<LH.Audit.Product>;
}
export namespace UIStrings {
let title: string;
let failureTitle: string;
let description: string;
let inputDelay: string;
let processingDuration: string;
let presentationDelay: string;
let displayValue: string;
let eventTarget: string;
}
import { Audit } from './audit.js';
//# sourceMappingURL=work-during-interaction.d.ts.map