/**-----------------------------------------------------------------------------------------
* 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 exporting the Grid to PDF. ([See example]({% slug pdfexport_grid %})).
*
* Use this component to customize PDF export options for the Grid.
*
* @example
* ```html
*
*
*
* ```
* @remarks
* Supported children components are: {@link PDFMarginComponent}.
*/
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 page.
*/
allPages: boolean;
/**
* Sets the delay in milliseconds before exporting the Grid content.
* Use this property when exporting complex components in 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;
/**
* @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;
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;
static ɵcmp: i0.ɵɵComponentDeclaration;
}