/// <reference types="react" />
import { AxiosInstance } from "axios";
import { TextBoxFactory } from "../ComponentFactory/TextBoxFactory";
import { MainStateManager } from "../MainStateManager";
import { ElementsOfFormFactory } from "../Page/ElementsOfFormFactory";
import { IMainStateFactory } from "../Types";
import { GridViewColumn, GridViewMergCaptionColumn } from "./Columns";
import { LockUnLockViewBargeFactory } from "./LockUnLockFactory";
export interface IViewBargeAxiosType {
    axios: (path: string) => AxiosInstance;
    controllerPath: string;
    actionGetByIdPath?: string;
    actionGetByLineIdPath?: string;
    controllerLockUnLockPath?: string;
    actionLockPath?: string;
    actionUnLockPath?: string;
}
export declare class ViewBargeFactory implements IMainStateFactory {
    mainStateManager: MainStateManager;
    yearId: number | null;
    id: number;
    isFindIdInRows: boolean;
    axiosData?: IViewBargeAxiosType | undefined;
    hasPagination?: boolean | undefined;
    getTextBoxFactory: (fieldName: string) => TextBoxFactory;
    lastResponse: any;
    cach: {};
    forceUpdate: () => void;
    onDeserializedData?: (data: any) => void;
    ContextMenuRow?: React.ComponentType<{
        headFactory: ViewBargeFactory;
        row: any;
    }>;
    axiosInstance?: AxiosInstance;
    controllerPath?: string;
    actionGetByIdPath?: string;
    actionGetByLineIdPath?: string;
    columns: GridViewColumn[];
    columnsReverse: GridViewColumn[];
    mergeCaptionColumns: GridViewMergCaptionColumn[] | null;
    rows: any[];
    waitForLoad?: boolean;
    get any(): any;
    elementsOfForm: ElementsOfFormFactory;
    lockUnLockFactory: LockUnLockViewBargeFactory;
    constructor(mainStateManager: MainStateManager, yearId: number | null, id: number, isFindIdInRows: boolean, axiosData?: IViewBargeAxiosType | undefined, hasPagination?: boolean | undefined);
    selectThisRowById: (_rowId: number) => never;
    selectThisRowByIndex: (rowIndex: number) => boolean;
    showContextMenuForRow: (_rowData: any, _rowIndex: number, _arg2: number, _arg3: number) => never;
    hideContextMenuForRow: () => never;
    currentRowIndex: number;
    isThisCurrentRow: (rowIndex: number) => boolean;
    selectedRowsIds: number[];
    isSelectedThisRow: (rowId: number) => boolean;
    selectThisCell: (rowIndex: any, _columnIndex: number) => void;
    refreshList: () => void;
    private loadData;
    private deserializeData;
    private hideAutoHideColumns;
    getWidth(child: any): number;
    close: () => void;
    toggelLockUnlock: (fieldName: string) => void;
    lock: (fieldName: string) => void;
    unLock: (fieldName: string) => void;
}
