import { PDFServicesJob } from "./PDFServicesJob";
import { Asset } from "../../io/Asset";
import { PDFPropertiesParams } from "../params/pdfproperties/PDFPropertiesParams";
import { ExecutionContext } from "../../internal/ExecutionContext";
import { NotifierConfig } from "../../config/notifier/NotifierConfig";
/**
* A job that is used to fetch properties from an input PDF file. The properties are returned in a POJO.
*
*
* @example
* Sample Usage:
* ```js
* const readStream = fs.createReadStream("");
*
* const credentials = new ServicePrincipalCredentials({
* clientId: process.env.PDF_SERVICES_CLIENT_ID,
* clientSecret: process.env.PDF_SERVICES_CLIENT_SECRET
* });
*
* const pdfServices = new PDFServices({credentials});
*
* const inputAsset = await pdfServices.upload({
* readStream,
* mimeType: MimeType.PDF
* });
*
* const params = new PDFPropertiesParams({
* includePageLevelProperties: true
* });
*
* const job = new PDFPropertiesJob({inputAsset, params});
*
* const pollingURL = await pdfServices.submit({job});
*
* const pdfServicesResponse = await pdfServices.getJobResult({
* pollingURL,
* resultType: PDFPropertiesResult
* });
*
* const pdfProperties = pdfServicesResponse.result.pdfProperties;
* ```
*/
export declare class PDFPropertiesJob extends PDFServicesJob {
private readonly _inputAsset;
private readonly _pdfPropertiesParams?;
/**
* Constructs a new `PDFPropertiesJob` instance.
*
* @param params The parameters for constructing an instance of `PDFPropertiesJob`.
* @param params.inputAsset The input asset for the job. Cannot be undefined.
* @param [params.params] {@link PDFPropertiesParams} object to specify the properties to be fetched from the PDF.
*/
constructor(params: {
inputAsset: Asset;
params?: PDFPropertiesParams;
});
/**
* @hidden
*/
process(executionContext: ExecutionContext, notifierConfigList?: NotifierConfig[]): Promise;
private generatePDFServicesAPIRequest;
}