import type { CustomPageSize , PredefinedPageSize } from 'pdfmake/interfaces' ; import type { Size } from '../../common/layout' ; export interface ViewZoomWidthHeight { zoom : number ; width : number ; height : number ; } export interface PdfImageSize { width : number ; height ? : number ; } export interface PageSizeParams { pageMarginTop : number ; pageMarginBottom : number ; pageMarginWidth : number ; tableBorderWidth : number ; headingHeight : number ; subheadingHeight : number ; } export abstract class BaseLayout { public id : string = '' ; public groupCount : number = 0 ; public hasHeader : boolean = true ; public hasFooter : boolean = true ; public useReportingBranding : boolean = true ; constructor ( id ) { this . id = id ; } public abstract getPdfImageSize ( ) ; public abstract getPdfPageOrientation ( ) ; public abstract getPdfPageSize ( pageSizeParams ) ; public abstract getViewport ( itemsCount ) ; public abstract getBrowserZoom ( ) ; public abstract getBrowserViewport ( ) ; public abstract getCssOverridesPath ( ) ; }