export type RenderStateValue = string | number | boolean | null;
export type RenderStateSnapshot = ReadonlyMap<string, RenderStateValue>;
export interface RenderStateDiff {
    readonly key: string;
    readonly before: RenderStateValue | undefined;
    readonly after: RenderStateValue | undefined;
}
export declare class RenderStateInspector {
    capture(source: {
        captureState(): RenderStateSnapshot;
    }): RenderStateSnapshot;
    diff(before: RenderStateSnapshot, after: RenderStateSnapshot): readonly RenderStateDiff[];
    assertNoLeak(before: RenderStateSnapshot, after: RenderStateSnapshot, ignoredKeys?: readonly string[]): void;
}
export declare class RenderStateLeakError extends Error {
    readonly leaks: readonly RenderStateDiff[];
    constructor(message: string, leaks: readonly RenderStateDiff[]);
}
//# sourceMappingURL=RenderStateInspector.d.ts.map