import { CDPConnection } from "../connection";
import { CDPEventEmitter } from "../emitter";
import type { CDPCSSStyleSheetHeader, CDPSessionId, CDPStyleSheetId } from "../types";
export interface CSSRuleUsage {
    styleSheetId: CDPStyleSheetId;
    startOffset: number;
    endOffset: number;
    used: boolean;
}
interface StopRuleUsageTrackingResponse {
    ruleUsage: CSSRuleUsage[];
}
interface TakeCoverageDeltaResponse {
    coverage: CSSRuleUsage[];
    /** Monotonically increasing time, in seconds. */
    timestamp: number;
}
export interface CssEvents {
    fontsUpdated: {
        font: Record<string, unknown>;
    };
    mediaQueryResultChanged: Record<string, never>;
    styleSheetAdded: {
        header: CDPCSSStyleSheetHeader;
    };
    styleSheetChanged: {
        styleSheetId: CDPStyleSheetId;
    };
    styleSheetRemoved: {
        styleSheetId: CDPStyleSheetId;
    };
}
/** @link https://chromedevtools.github.io/devtools-protocol/tot/CSS/ */
export declare class CDPCss extends CDPEventEmitter<CssEvents> {
    private readonly _connection;
    constructor(connection: CDPConnection);
    /** @param sessionId result of "Target.attachToTarget" */
    /** @link https://chromedevtools.github.io/devtools-protocol/tot/CSS/#method-enable */
    enable(sessionId: CDPSessionId): Promise<void>;
    /** @param sessionId result of "Target.attachToTarget" */
    /** @link https://chromedevtools.github.io/devtools-protocol/tot/CSS/#method-disable */
    disable(sessionId: CDPSessionId): Promise<void>;
    /** @link https://chromedevtools.github.io/devtools-protocol/tot/CSS/#method-getStyleSheetText */
    getStyleSheetText(sessionId: CDPSessionId, styleSheetId: CDPStyleSheetId): Promise<{
        text: string;
    }>;
    /** @link https://chromedevtools.github.io/devtools-protocol/tot/CSS/#method-startRuleUsageTracking */
    startRuleUsageTracking(sessionId: CDPSessionId): Promise<void>;
    /** @link https://chromedevtools.github.io/devtools-protocol/tot/CSS/#method-stopRuleUsageTracking */
    stopRuleUsageTracking(sessionId: CDPSessionId): Promise<StopRuleUsageTrackingResponse>;
    /** @link https://chromedevtools.github.io/devtools-protocol/tot/CSS/#method-takeCoverageDelta */
    takeCoverageDelta(sessionId: CDPSessionId): Promise<TakeCoverageDeltaResponse>;
}
export {};
