/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ElementRef, OnDestroy, NgZone, QueryList } from '@angular/core';
import { Subscription } from 'rxjs';
import { SuspendService } from '../scrolling/suspend.service';
import { PDFService } from './pdf.service';
import { PDFMarginComponent } from './pdf-margin.component';
import { PDFTemplateDirective } from './pdf-template.directive';
import { ColumnBase } from '../columns/column-base';
import { DrawOptions, Group } from '@progress/kendo-drawing';
import { PDFExportComponent } from '@progress/kendo-angular-pdf-export';
import { ContextService } from '../common/provider.service';
import * as i0 from "@angular/core";
/**
 * Configures the settings for the export of Grid in PDF ([see example]({% slug pdfexport_grid %})).
 */
export declare class PDFComponent extends PDFExportComponent implements OnDestroy {
    protected pdfService: PDFService;
    protected suspendService: SuspendService;
    protected ngZone: NgZone;
    private ctx;
    /**
     * Exports all Grid pages, starting from the first one.
     */
    allPages: boolean;
    /**
     * The delay in milliseconds before exporting the Grid content.
     * Useful for scenarios which involve exporting complex components used in the Grid
     * templates such as charts or data-bound components with asynchronous data retrieval ([see example]({% slug pdfexport_grid %}#toc-exporting-all-pages)).
     *
     * @default 0
     */
    delay: number;
    columns: QueryList<ColumnBase>;
    /**
     * @hidden
     */
    marginComponent: PDFMarginComponent;
    /**
     * @hidden
     */
    pageTemplateDirective: PDFTemplateDirective;
    protected progress: HTMLElement;
    protected component: any;
    protected container: HTMLElement;
    protected skip: number;
    protected pageSize: number;
    protected originalHeight: string;
    protected originalOverflow: string;
    protected saveSubscription: Subscription;
    protected drawSubscription: Subscription;
    protected renderAllPages: boolean;
    protected originalColumns: ColumnBase[];
    constructor(pdfService: PDFService, suspendService: SuspendService, ngZone: NgZone, element: ElementRef, ctx: ContextService);
    ngOnDestroy(): void;
    /**
     * @hidden
     */
    saveAs(): void;
    /**
     * @hidden
     */
    export(): Promise<Group>;
    protected savePDF(component: any): void;
    protected drawPDF({ component, promise }: any): void;
    protected createPDF(component: any, callback: any): void;
    protected initProgress(): void;
    protected applyScroll(overlay: HTMLElement): void;
    protected draw(): void;
    protected createExportGroup(promise: any): void;
    protected createExportElement(callback: any): void;
    protected drawOptions(): DrawOptions;
    protected cleanup(): void;
    protected removeContainer(): void;
    protected changePage(skip: number, _take: number, callback: () => void, columns?: any[]): void;
    protected changeColumns(columns: any[], callback: () => void): void;
    protected reset(): void;
    protected onStable(callback: () => void): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PDFComponent, [null, null, null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PDFComponent, "kendo-grid-pdf", never, { "allPages": { "alias": "allPages"; "required": false; }; "delay": { "alias": "delay"; "required": false; }; }, {}, ["marginComponent", "pageTemplateDirective", "columns"], never, true, never>;
}
