export interface ILabel {
    uuid?: string;
    tagId?: string;
    stroke?: string;
    fill?: string;
    index: number;
    word: string;
    selected?: boolean;
    direction?: string;
}
export interface ILabelStyle {
    uuid: string;
    fill?: string;
    stroke?: string;
}
export interface ISerarchParams {
    keyword: string;
    caseSensitive: boolean;
}
export interface ISearchResult extends ISerarchParams {
    result?: {
        [prop: number]: {
            pageNumber: number;
            pre: string;
            next: string;
        }[];
    };
}
export interface IClickMetadata {
    altKey: boolean;
    ctrlKey: boolean;
    metaKey: boolean;
    shiftKey: boolean;
    which: number;
}
interface ILabelsEvent {
    data: ILabel[];
    position: {
        top: number;
        left: number;
        width: number;
        height: number;
    };
}
export declare type ILabelingEvent = ILabelsEvent;
export declare type IDeleteLabelsEvent = ILabelsEvent;
export declare type IHoverInLabelsEvent = ILabelsEvent;
export interface IClickLabelsEvent extends ILabelsEvent {
    metadata: IClickMetadata;
}
export interface IPagination {
    pageNumber: number;
    pageCount: number;
}
export interface IInitOptions {
    id: string;
    pdfUrl: string;
    pdfInfoUrl: string;
    pdfCharsUrl: string;
    pdfMode: string;
    labelMode: LabelTableMode | LabelTextMode;
    pdfSize?: number;
    labels?: ILabel[];
    tables?: ISafeAny[];
}
export interface ISearchLabelByUuidParams {
    uuid: string;
    pageNumber?: number;
    isHighlight?: boolean;
    level?: number;
    offsetTop?: number;
    stroke?: string;
    fill?: string;
}
export interface ISearchLabelByIndexParams {
    index: number;
    word?: string;
    isHighlight?: boolean;
    level?: number;
    offsetTop?: number;
}
export interface ISearchTableCellParams {
    pageNumber: number;
    tableId: string;
    x: number;
    y: number;
    word?: string;
    fontSize?: number;
    scale?: number;
    fill?: string;
}
export interface IViewPort {
    height: number;
    left: number;
    scale: number;
    top: number;
    width: number;
    zoom: number;
}
export interface ITableMatrix {
    tableId: string;
    type: 'update' | 'insert' | 'delete';
    pageNumber: number;
    area: number[];
    lines: number[][][];
    detail: {
        h: number;
        v: number;
    };
}
export declare type ISafeAny = any;
export declare enum LabelTextMode {
    /**
     * 禁止标注
     */
    non = "non",
    /**
     * 划选
     */
    textSlip = "textSlip",
    /**
     * 框选
     */
    textFrame = "textFrame",
    /**
     * 组合
     */
    textGroup = "textGroup"
}
export declare enum LabelTableMode {
    /**
     * 新增表格
     */
    tableAddTbl = "tableAddTbl",
    /**
     * 调整表格
     */
    tableResizeTbl = "tableResizeTbl",
    /**
     * 删除表格
     */
    tableDelTbl = "tableDelTbl",
    /**
     * 横向拆分表格
     */
    tableHSplitTbl = "tableHSplitTbl",
    /**
     * 纵向拆分表格
     */
    tableVSplitTbl = "tableVSplitTbl",
    /**
     * 增加横线
     */
    tableAddHLine = "tableAddHLine",
    /**
     * 增加竖线
     */
    tableAddVLine = "tableAddVLine",
    /**
     * 增加表格线 (任意长度)
     */
    tableAddLine = "tableAddLine",
    /**
     * 调整线条
     */
    tableResizeCell = "tableResizeCell",
    /**
     * 删除线
     */
    tableDelLine = "tableDelLine",
    /**
     * 删除单元格线
     */
    tableDelCellLine = "tableDelCellLine",
    /**
     * 合并单元格
     */
    tableMergeCell = "tableMergeCell",
    /**
     * 拆分单元格
     */
    tableSplitCell = "tableSplitCell",
    /**
     * 选择单元格
     */
    tableSelectCells = "tableSelectCells",
    /**
     * 隐藏框线
     */
    tableHideTable = "tableHideTable",
    /**
     * 显示框线
     */
    tableShowTable = "tableShowTable",
    /**
     * 选择表格
     */
    selectTables = "tableSelectTables",
    /**
     * 合并表格
     */
    mergeTables = "tableMergeTables",
    /**
     * 拆分表格
     */
    splitTables = "tableSplitTables",
    /**
     * 禁止表格操作
     */
    tableNon = "tableNon"
}
export declare enum PdfMode {
    /**
     * 全部功能
     */
    full = "full",
    /**
     * 只读
     */
    readonly = "readonly",
    /**
     * 只删
     */
    deleteonly = "deleteonly",
    /**
     * 预览（只能查看pdf文档）
     */
    preview = "preview"
}
export interface ISearchRectParams {
    x1: number;
    y1: number;
    x2: number;
    y2: number;
    pageNumber: number;
    stroke?: string;
    fill?: string;
}
export interface ITableSplit {
    page_number: number;
    table_id: string;
    split_lines: number[][][];
}
export interface ITableOperationRecord {
    id: string;
    type: LabelTableMode;
}
export interface IModifiedTableLineMatrix {
    table_id: string;
    page_number: number;
    lines: {
        type: 'add' | 'delete' | 'update';
        before: number[][] | null;
        after: number[][] | null;
    }[];
}
export {};
