import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import type { CallContext, CallOptions } from "nice-grpc-common";
import type { FileDescriptorProto as FileDescriptorProto1 } from "ts-proto-descriptors";
import { Empty } from "../../google/protobuf/empty";
import { Subject } from "./auth";
import { OperationStatus, Status } from "./status";
export declare const protobufPackage = "io.restorecommerce.pdf_rendering";
export interface RenderRequest {
    individual?: IndividualRequest | undefined;
    combined?: CombinedRequest | undefined;
    subject?: Subject | undefined;
}
export interface IndividualRequest {
    data?: IndividualRequest_IndividualRequestData[] | undefined;
}
export interface IndividualRequest_IndividualRequestData {
    data?: RenderData | undefined;
    output?: OutputOptions | undefined;
}
export interface CombinedRequest {
    data?: RenderData[] | undefined;
    output?: OutputOptions | undefined;
}
export interface RenderData {
    source?: RenderSource | undefined;
    options?: RenderOptions | undefined;
}
export interface OutputOptions {
    generatePdfa?: boolean | undefined;
    metaData?: MetaData | undefined;
    uploadOptions?: UploadOptions | undefined;
}
export interface RenderOptions {
    waitAfterLoadTime?: number | undefined;
    puppeteerOptions?: PuppeteerOptions | undefined;
}
export interface RenderSource {
    url?: string | undefined;
    html?: string | undefined;
}
export interface UploadOptions {
    bucket?: string | undefined;
    key?: string | undefined;
    contentDisposition?: string | undefined;
}
export interface MetaData {
    title?: string | undefined;
    creator?: string | undefined;
    producer?: string | undefined;
}
export interface RenderingResponse {
    individual?: IndividualResponse | undefined;
    combined?: ResponsePayloadWithStatus | undefined;
    operationStatus?: OperationStatus | undefined;
}
export interface IndividualResponse {
    RenderingResponse?: ResponsePayloadWithStatus[] | undefined;
}
export interface ResponsePayloadWithStatus {
    payload?: ResponsePayload | undefined;
    status?: Status | undefined;
}
export interface ResponsePayload {
    pdf?: ResponsePdf | undefined;
    uploadResult?: ResponseS3Upload | undefined;
}
export interface ResponsePdf {
    data?: Buffer | undefined;
}
export interface ResponseS3Upload {
    url?: string | undefined;
    length?: number | undefined;
}
export interface InfoResponse {
    chrome?: InfoResponse_ChromeVersion | undefined;
}
export interface InfoResponse_ChromeVersion {
    protocolVersion?: string | undefined;
    product?: string | undefined;
    revision?: string | undefined;
    userAgent?: string | undefined;
    jsVersion?: string | undefined;
}
export interface PuppeteerOptions {
    pdfOptions?: PdfOptions | undefined;
}
export interface PdfOptions {
    landscape?: boolean | undefined;
    displayHeaderFooter?: boolean | undefined;
    printBackground?: boolean | undefined;
    format?: PdfOptions_PaperFormat | undefined;
    scale?: number | undefined;
    paperWidth?: number | undefined;
    paperHeight?: number | undefined;
    marginTop?: number | undefined;
    marginBottom?: number | undefined;
    marginLeft?: number | undefined;
    marginRight?: number | undefined;
    pageRanges?: string | undefined;
    ignoreInvalidPageRanges?: boolean | undefined;
    headerTemplate?: string | undefined;
    footerTemplate?: string | undefined;
    preferCssPageSize?: boolean | undefined;
}
export declare enum PdfOptions_PaperFormat {
    A0 = "A0",
    A1 = "A1",
    A2 = "A2",
    A3 = "A3",
    A4 = "A4",
    A5 = "A5",
    A6 = "A6",
    A7 = "A7",
    LETTER = "LETTER",
    LEGAL = "LEGAL",
    TABLOID = "TABLOID",
    UNRECOGNIZED = "UNRECOGNIZED"
}
export declare function pdfOptions_PaperFormatFromJSON(object: any): PdfOptions_PaperFormat;
export declare function pdfOptions_PaperFormatToJSON(object: PdfOptions_PaperFormat): string;
export declare function pdfOptions_PaperFormatToNumber(object: PdfOptions_PaperFormat): number;
export declare const RenderRequest: MessageFns<RenderRequest>;
export declare const IndividualRequest: MessageFns<IndividualRequest>;
export declare const IndividualRequest_IndividualRequestData: MessageFns<IndividualRequest_IndividualRequestData>;
export declare const CombinedRequest: MessageFns<CombinedRequest>;
export declare const RenderData: MessageFns<RenderData>;
export declare const OutputOptions: MessageFns<OutputOptions>;
export declare const RenderOptions: MessageFns<RenderOptions>;
export declare const RenderSource: MessageFns<RenderSource>;
export declare const UploadOptions: MessageFns<UploadOptions>;
export declare const MetaData: MessageFns<MetaData>;
export declare const RenderingResponse: MessageFns<RenderingResponse>;
export declare const IndividualResponse: MessageFns<IndividualResponse>;
export declare const ResponsePayloadWithStatus: MessageFns<ResponsePayloadWithStatus>;
export declare const ResponsePayload: MessageFns<ResponsePayload>;
export declare const ResponsePdf: MessageFns<ResponsePdf>;
export declare const ResponseS3Upload: MessageFns<ResponseS3Upload>;
export declare const InfoResponse: MessageFns<InfoResponse>;
export declare const InfoResponse_ChromeVersion: MessageFns<InfoResponse_ChromeVersion>;
export declare const PuppeteerOptions: MessageFns<PuppeteerOptions>;
export declare const PdfOptions: MessageFns<PdfOptions>;
export type PdfRenderingServiceDefinition = typeof PdfRenderingServiceDefinition;
export declare const PdfRenderingServiceDefinition: {
    readonly name: "PdfRenderingService";
    readonly fullName: "io.restorecommerce.pdf_rendering.PdfRenderingService";
    readonly methods: {
        readonly info: {
            readonly name: "Info";
            readonly requestType: typeof Empty;
            readonly requestStream: false;
            readonly responseType: typeof InfoResponse;
            readonly responseStream: false;
            readonly options: {
                readonly _unknownFields: {
                    readonly 248008: readonly [Buffer<ArrayBufferLike>];
                };
            };
        };
        readonly render: {
            readonly name: "Render";
            readonly requestType: typeof RenderRequest;
            readonly requestStream: false;
            readonly responseType: typeof RenderingResponse;
            readonly responseStream: false;
            readonly options: {};
        };
    };
};
export interface PdfRenderingServiceImplementation<CallContextExt = {}> {
    info(request: Empty, context: CallContext & CallContextExt): Promise<DeepPartial<InfoResponse>>;
    render(request: RenderRequest, context: CallContext & CallContextExt): Promise<DeepPartial<RenderingResponse>>;
}
export interface PdfRenderingServiceClient<CallOptionsExt = {}> {
    info(request: DeepPartial<Empty>, options?: CallOptions & CallOptionsExt): Promise<InfoResponse>;
    render(request: DeepPartial<RenderRequest>, options?: CallOptions & CallOptionsExt): Promise<RenderingResponse>;
}
type ProtoMetaMessageOptions = {
    options?: {
        [key: string]: any;
    };
    fields?: {
        [key: string]: {
            [key: string]: any;
        };
    };
    oneof?: {
        [key: string]: {
            [key: string]: any;
        };
    };
    nested?: {
        [key: string]: ProtoMetaMessageOptions;
    };
};
export interface ProtoMetadata {
    fileDescriptor: FileDescriptorProto1;
    references: {
        [key: string]: any;
    };
    dependencies?: ProtoMetadata[];
    options?: {
        options?: {
            [key: string]: any;
        };
        services?: {
            [key: string]: {
                options?: {
                    [key: string]: any;
                };
                methods?: {
                    [key: string]: {
                        [key: string]: any;
                    };
                };
            };
        };
        messages?: {
            [key: string]: ProtoMetaMessageOptions;
        };
        enums?: {
            [key: string]: {
                options?: {
                    [key: string]: any;
                };
                values?: {
                    [key: string]: {
                        [key: string]: any;
                    };
                };
            };
        };
    };
}
export declare const protoMetadata: ProtoMetadata;
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
export interface MessageFns<T> {
    encode(message: T, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): T;
    fromJSON(object: any): T;
    toJSON(message: T): unknown;
    create(base?: DeepPartial<T>): T;
    fromPartial(object: DeepPartial<T>): T;
}
export {};
//# sourceMappingURL=pdf_rendering.d.ts.map