/// <reference types="react" />
import { AxiosResponse } from "axios";
import { MainStateManager } from "../../MainStateManager";
import { ElementsOfFormFactory } from "../../Page/ElementsOfFormFactory";
import { IMainStateFactory } from "../../Types";
import { SimpleCodeFactory } from "./SimpleCodeFactory";
export interface ISimpleCodeListViewRow {
    name: string;
    id: number;
    code: number;
}
interface ISearchParameter {
    currentPage: number;
    itemsPerPage: number;
    totalItems?: number;
    totalPages: number;
    needTotalCount?: boolean;
    showAll?: boolean;
    code?: number;
    filter?: string;
}
export declare class SimpleCodeListViewFactory {
    #private;
    mainStateFactory: IMainStateFactory;
    selfSimpleCode: SimpleCodeFactory;
    onlyLastLevel: boolean;
    closeModal: () => void;
    mainStateManager: MainStateManager;
    elementsOfForm: ElementsOfFormFactory;
    forceUpdate: () => void;
    get any(): any;
    selectedRowId: number | null;
    waitForLoad: boolean;
    currentFilterWaitForLoad: string | null;
    refFilterInput?: React.RefObject<HTMLInputElement>;
    selectedRowRef?: React.RefObject<HTMLTableRowElement>;
    constructor(mainStateFactory: IMainStateFactory, selfSimpleCode: SimpleCodeFactory, onlyLastLevel: boolean, closeModal: () => void);
    rows: ISimpleCodeListViewRow[];
    filter: string;
    code: number;
    searchParameter: ISearchParameter;
    selectPreviousRow: () => void;
    selectNextRow: () => void;
    selectByPageup(): void;
    selectByPagedown(): void;
    selectFirst(): void;
    selectLast(): void;
    selectedRow: () => ISimpleCodeListViewRow | undefined;
    currentRow: () => ISimpleCodeListViewRow | undefined;
    setCurrentPage: (page: number) => void;
    selectThisRow: (row: ISimpleCodeListViewRow) => void;
    private _selectCurrentRowByCode;
    exportToExcel: () => void;
    private afterExportToExcelSuccess;
    downloadFile: <P>(path: string, searchParametr: P, afterSuccess: (response: AxiosResponse) => void) => void;
    searchListView: () => void;
    acceptCurrentRow: () => void;
    cancelForm: () => void;
}
export {};
