import { AfterViewInit, ElementRef, NgZone, OnDestroy, Renderer2 } from '@angular/core';
import { PageHeaderService } from '../../services';
import * as i0 from "@angular/core";
export declare class FitPageDirective implements AfterViewInit, OnDestroy {
    private readonly elementRef;
    private readonly pageHeaderService;
    private readonly renderer;
    private readonly ngZone;
    private readonly document;
    /**
     * @deprecated Kept for backwards compatibility. The height is now derived from the element's
     * actual top offset, which already accounts for any content above it, so this is no longer
     * needed. New usages should rely on `bottomMargin` instead.
     */
    spaceAdjustment: number;
    fitPageDisabled: boolean;
    disableOverflow: boolean;
    /**
     * Amount of whitespace (in px) kept between the element's bottom edge and the viewport bottom.
     * The height is computed from the element's actual top offset, so this gap is preserved
     * regardless of header height, compact mode, or any content rendered above the element.
     */
    bottomMargin: number;
    private readonly _subscriptions;
    private _rafId;
    private _lastTopOffset;
    private _settleFrames;
    constructor(elementRef: ElementRef, pageHeaderService: PageHeaderService, renderer: Renderer2, ngZone: NgZone, document: Document);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * Measures on the next frame(s) instead of synchronously, then keeps re-measuring until the
     * element's top offset stops changing. Content above the element (tabs, toolbars, async
     * editors) may not have laid out yet when the trigger fires, so the first measurement can be
     * stale — previously this only corrected itself after a manual window resize.
     */
    private scheduleFitPageHeight;
    private queueFrame;
    private cancelScheduledFrame;
    /** Applies the height and returns whether the top offset has stabilized since the last frame. */
    private applyFitPageHeight;
    private addDocumentOverflowStyle;
    private removeDocumentOverflowStyle;
    static ɵfac: i0.ɵɵFactoryDeclaration<FitPageDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FitPageDirective, "[fitPage]", never, { "spaceAdjustment": { "alias": "spaceAdjustment"; "required": false; }; "fitPageDisabled": { "alias": "fitPageDisabled"; "required": false; }; "disableOverflow": { "alias": "disableOverflow"; "required": false; }; "bottomMargin": { "alias": "bottomMargin"; "required": false; }; }, {}, never, never, true, never>;
}
//# sourceMappingURL=fit-page.directive.d.ts.map