/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ElementRef } from '@angular/core';
import { pdf, DrawOptions, Group } from '@progress/kendo-drawing';
import { SaveOptions } from '@progress/kendo-file-saver';
import { PDFExportTemplateDirective } from './pdf-export-template.directive';
import { PDFExportMarginComponent } from './pdf-export-margin.component';
import * as i0 from "@angular/core";
/**
* @hidden
*
* Re-export PaperSize to work around a bug in the API reference generator.
*
* The type will be linked to the kendo-drawing documentation
* by using the slug provided in api-type-links.json
*/
export type PaperSize = pdf.PaperSize;
/**
* Represents the [Kendo UI PDF Export component for Angular](https://www.telerik.com/kendo-angular-ui/components/pdf-export).
*
* @example
* ```html
*
*
*
* Content goes here
*
* ```
*
* @remarks
* Supported children components are: {@link PDFExportMarginComponent}
*/
export declare class PDFExportComponent implements pdf.PDFOptions {
protected element: ElementRef;
/**
* If `true`, opens the Print dialog immediately after the PDF loads ([see example](https://www.telerik.com/kendo-angular-ui/components/pdf-export/auto-print)).
* Requires `@progress/kendo-drawing` v1.9.0 or later.
* @default false
*/
autoPrint?: boolean;
/**
* Sets the author metadata for the PDF document.
*/
author: string;
/**
* Specifies whether actual hyperlinks will be produced in the exported PDF file ([see example](https://www.telerik.com/kendo-angular-ui/components/pdf-export/disabling-hyperlinks)). You can also set a CSS selector to ignore matching links.
*/
avoidLinks: boolean | string;
/**
* Sets a CSS selector for elements that cause page breaks
* ([see example](https://www.telerik.com/kendo-angular-ui/components/pdf-export/multi-page-content#manual-page-breaking)).
*/
forcePageBreak: string;
/**
* Sets a CSS selector for elements that should not split across pages
* ([see example](https://www.telerik.com/kendo-angular-ui/components/pdf-export/multi-page-content#preventing-page-breaking-in-elements)).
*/
keepTogether: string;
/**
* Sets the creator metadata for the PDF document.
* @default "Kendo UI PDF Generator"
*/
creator: string;
/**
* Sets the creation date for the PDF document. Defaults to `new Date()`.
* @default new Date()
*/
date: Date;
/**
* Sets the image resolution in the exported PDF ([see example](https://www.telerik.com/kendo-angular-ui/components/pdf-export/embedded-images)). By default, images use full resolution.
*/
imageResolution: number;
/**
* Sets the name of the exported PDF file.
* @default "export.pdf"
*/
fileName: string;
/**
* If `true`, forwards content to `proxyURL` even if the browser supports local file saving.
*/
forceProxy: boolean;
/**
* Sets the keywords metadata for the PDF document.
*/
keywords: string;
/**
* If `true`, sets the page orientation to landscape. The default page orientation is portrait.
* @default false
*/
landscape: boolean;
/**
* Sets the page margins. Numbers use points (`"pt"`).
*/
margin: string | number | pdf.PageMargin;
/**
* Sets the paper size for the PDF document. Defaults to `"auto"`, which means the content determines the size of the document.
* The size of the content in pixels matches the size of the output in points (1 pixel = 1/72 inch).
*
* If set, the content splits across pages, and allows you to use `repeatHeaders`, `scale`, and a template.
*
* The value can be a `PaperSize`, an array of two numbers (width and height in points), or an array of two strings (width and height in units: `"mm"`, `"cm"`, `"in"`, or `"pt"`).
* @default "auto"
*/
paperSize: PaperSize;
/**
* If `true`, repeats the `` elements of tables on each page. This helps keep table headers visible on every page
* ([see example](https://www.telerik.com/kendo-angular-ui/components/pdf-export/repeated-table-headers)).
*/
repeatHeaders: boolean;
/**
* Sets a scale factor for the PDF output. Use this to make the PDF content smaller or larger
* ([see example](https://www.telerik.com/kendo-angular-ui/components/pdf-export/scaling-of-content)).
*
* @default 1
*/
scale: number;
/**
* Sets a key/value dictionary of form values sent to the proxy. Use this to send extra data, like Anti-Forgery tokens.
*/
proxyData?: {
[key: string]: string;
};
/**
* Sets the server-side proxy URL for streaming the file to the user. You need to implement a proxy if
* the browser is not capable of saving files locally.
* The proxy returns the decoded file with the `"Content-Disposition"` header set to `attachment; filename=""`.
*
* In the request body, the proxy receives a POST request with the specific parameters
* ([see example](https://www.telerik.com/kendo-angular-ui/components/file-saver/server-proxy#implementations)).
*/
proxyURL: string;
/**
* Sets where to display the document returned from the proxy. Use `"_self"` to display in the same window.
* To display the document in a new window or iframe,
* the proxy must have the `"Content-Disposition"` header set to `inline; filename=""`.
* @default "_self"
*/
proxyTarget: string;
/**
* Sets the producer metadata for the PDF document.
*/
producer: string;
/**
* Sets the subject metadata for the PDF document.
*/
subject: string;
/**
* Sets the title metadata for the PDF document.
*/
title: string;
/**
* @hidden
*/
pageTemplateDirective: PDFExportTemplateDirective;
/**
* @hidden
*/
marginComponent: PDFExportMarginComponent;
protected get drawMargin(): any;
protected pageTemplate: any;
constructor(element: ElementRef);
/**
* Saves the content as a PDF file with the specified name.
* @param fileName - The name of the exported file.
*/
saveAs(fileName?: string): void;
/**
* Exports the content as a `Group` for further processing.
*
* @return The root group of the exported scene.
*/
export(): Promise;
protected save(element: HTMLElement, fileName: string): void;
protected exportElement(element: HTMLElement): Promise;
protected cleanup(): void;
protected drawOptions(): DrawOptions;
protected pdfOptions(): any;
protected saveOptions(): SaveOptions;
protected drawElement(element: HTMLElement, options: DrawOptions): Promise;
protected exportGroup(group: Group, options: pdf.PDFOptions): Promise;
private saveDataUri;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}