export type RenderingStateType = 'RENDERING' | 'LOADING' | 'FINISHED' | 'PAUSED'; export type LineType = 'Highlight' | 'Underline' | 'Squiggly' | 'StrikeOut'; export type ReducerFuncType = ( (state: Record, action: { type: string; payload: any}) => any ); export type ViewportType = { width: number; height: number; }; export type ProgressType = { loaded: number; total: number; }; export type ScrollStateType = { right: boolean; down: boolean; lastX: number; lastY: number; subscriber: any; }; export type SelectOptionType = { key: string | number; content: React.ReactNode; child: React.ReactNode; }; export type PositionType = { top: number; bottom: number; left: number; right: number; }; export type HTMLCoordinateType = { top: number; left: number; width: number; height: number; }; export type PointType = { x: number; y: number; } export type LinePositionType = { start: PointType; end: PointType; }; export type AnnotationPositionType = ( string | PositionType | LinePositionType | PointType | (PositionType | PointType[])[] ); export type AnnotationAttributeType = { page: number; bdcolor?: string | undefined; position: AnnotationPositionType; transparency?: number | undefined; content?: string | undefined; style?: number | undefined; fcolor?: string | undefined; ftransparency?: number | undefined; bdwidth?: number | undefined; fontname?: string | undefined; fontsize?: number | undefined; textcolor?: string | undefined; is_arrow?: boolean | undefined; }; export type AnnotationType = { id?: string; obj_type: string; obj_attr: AnnotationAttributeType; }; export type UpdateData = { bdcolor?: string; transparency?: number; position?: AnnotationPositionType; content?: string; fontsize?: number; }; export type OnUpdateType = ( (data: UpdateData) => void ); type DispatchType = { type: string; payload: string | number | boolean | Record | any[]; } export type ActionType = ( (dispatch: (obj: DispatchType) => void) => Record ); export type AnnotationElementPropsType = AnnotationType & { isCovered: boolean; isCollapse: boolean; mousePosition: Record; onUpdate: OnUpdateType; onDelete: () => void; scale: number; viewport: ViewportType; onEdit: () => void; isEdit: boolean; onBlur: () => void; }; export type OptionPropsType = { type?: string; color?: string; opacity?: number; fontName?: string; fontSize?: number; width?: number; align?: string; fontStyle?: string; shape?: string; text?: string; setDataState?: (arg: Record) => void; }; export type CoordType = { left: number; top: number; width?: number; height?: number; }; export type CircleType = { direction: string; cx: number; cy: number; r: number; }; export type WatermarkType = { type?: 'image' | 'text'; scale?: number; opacity?: number; rotation?: number; pages?: string; vertalign?: 'top' | 'center' | 'bottom'; horizalign?: 'left' | 'center' | 'right'; xoffset?: number; yoffset?: number; imagepath?: string; text?: string; textcolor?: string; isfront?: 'yes' | 'no'; };