/// <reference types="react" />
import { AxiosInstance, AxiosResponse } from "axios";
import { MainStateManager } from "../../MainStateManager";
import { ElementsOfFormFactory } from "../../Page/ElementsOfFormFactory";
import { IMainStateFactory } from "../../Types";
import { TREECODE } from "amisa-paths";
import { StructureCoding } from "../../StructureCoding";
export interface IStructuralCodeListViewRow {
    name: string;
    id: number;
    code: string;
}
interface ISearchParameter {
    currentPage: number;
    itemsPerPage: number;
    totalItems?: number;
    totalPages: number;
    needTotalCount?: boolean;
    showAll?: boolean;
    code?: string;
    filter?: string;
}
export interface IStructuralCodeFactoryForListView {
    urls: TREECODE;
    apiAxios: AxiosInstance;
    onlyLastLevel: boolean;
    required: boolean;
    coding: StructureCoding;
    code: string;
    focusToElement: () => void;
    onChangeHandlerCode: (code: string) => void;
    getCodeData: () => void;
}
export declare class StructuralCodeListViewFactory {
    mainStateFactory: IMainStateFactory;
    selfStructuralCode: IStructuralCodeFactoryForListView;
    onlyLastLevel: boolean;
    mainStateManager: MainStateManager;
    forceUpdate: () => void;
    elementsOfForm: ElementsOfFormFactory;
    get any(): any;
    selectedRowId: number | null;
    currentFilterWaitForLoad: string | null;
    refFilterInput?: React.RefObject<HTMLInputElement>;
    selectedRowRef?: React.RefObject<HTMLTableRowElement>;
    rows: IStructuralCodeListViewRow[];
    filter: string;
    code: string;
    searchParameter: ISearchParameter;
    constructor(mainStateFactory: IMainStateFactory, selfStructuralCode: IStructuralCodeFactoryForListView, onlyLastLevel: boolean, initialFilterValue?: string);
    previousRow: () => void;
    nextRow: () => void;
    selectPreviousRow: () => void;
    selectNextRow: () => void;
    previousPage: () => void;
    nextPage: () => void;
    selectByPageup(): void;
    selectByPagedown(): void;
    selectFirst(): void;
    selectLast(): void;
    selectedRow: () => IStructuralCodeListViewRow | undefined;
    currentRow: () => IStructuralCodeListViewRow | undefined;
    setCurrentPage: (page: number) => void;
    selectThisRow: (row: IStructuralCodeListViewRow) => void;
    private _selectCurrentRowByCode;
    exportToExcel: () => void;
    private afterExportToExcelSuccess;
    downloadFile: <P>(path: string, searchParametr: P, afterSuccess: (response: AxiosResponse) => void) => void;
    searchListView: () => void;
    accept: () => void;
    acceptCurrentRow: () => void;
    close: () => void;
    cancelForm: () => void;
}
export {};
