/// <reference types="react" />
import { FontIconType } from "../FontIconType";
import { MainStateManager } from "../MainStateManager";
import { INaming } from "../NamingCaption";
import { ElementsOfFormFactory } from "../Page/ElementsOfFormFactory";
import { GridViewFactory } from "./GridViewFactory";
export declare function AccountColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
    level?: number;
}): null;
export declare function DetailedAccountColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function CustomerColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function CostCenterColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function BankColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function BranchColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function CarColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function CashColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function DriveColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function PersonColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function PurchaseOfficerColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function SaleManagerColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function StakeholderColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function CapitalistColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function VisitorColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function StringColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    width?: number;
    isFillEmptySpace?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
    filterFieldName?: string;
    onPrepareShowValue?: (value: string, row: any, previousRow: any, nextRow: any, rowInex: number) => any;
}): null;
export declare function CountColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    width?: number;
    isFillEmptySpace?: boolean;
    filterFieldName?: string;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
    onPrepareShowValue?: (value: number, row: any, previousRow: any, nextRow: any, rowInex: number) => any;
}): null;
export declare function RowColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    filterFieldName?: string;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
}): null;
export declare function MergeColumns(_props: {
    caption: INaming | string;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
    children: React.ReactNode;
}): null;
export declare function IdColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    filterFieldName?: string;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
    onPrepareShowValue?: (value: number, row: any, previousRow: any, nextRow: any, rowInex: number) => any;
}): null;
export declare function QTYColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    filterFieldName?: string;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
    onPrepareShowValue?: (value: number, row: any, previousRow: any, nextRow: any, rowInex: number) => any;
}): null;
export declare function NumberOfCheckColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    filterFieldName?: string;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
    onPrepareShowValue?: (value: number, row: any, previousRow: any, nextRow: any, rowInex: number) => any;
}): null;
export declare function DateColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    filterFieldName?: string;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
    onPrepareShowValue?: (value: string, row: any, previousRow: any, nextRow: any, rowInex: number) => any;
}): null;
export declare function NumberColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    filterFieldName?: string;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
    onPrepareShowValue?: (value: number, row: any, previousRow: any, nextRow: any, rowInex: number) => any;
}): null;
export declare function AmountColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    sortable?: boolean;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    autoHideIfEmpty?: true;
    calcSummery?: true;
    filterFieldName?: string;
    onPrepareShowValue?: (value: number, row: any, previousRow: any, nextRow: any, rowInex: number) => any;
}): null;
export declare function IconColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    headerIcon?: FontIconType;
    defaultIcon?: FontIconType;
    sizeIcon?: 1 | 2 | 3;
    colorIcon?: string;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    onPrepareShowValue?: (value: any, row: any, previousRow: any, nextRow: any, rowInex: number) => FontIconType | [FontIconType, string] | null;
    onOnDoublClick?: (value: any, row: any, previousRow: any, nextRow: any, rowInex: number, gridViewFactory: GridViewFactory) => void;
}): null;
export declare function NumberIconColumn(_props: {
    fieldNameOfRow: string;
    caption: INaming | string;
    headerIcon?: FontIconType;
    sizeIcon?: 1 | 2 | 3;
    colorIcon?: string;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
    onPrepareSetColor?: (value: number | null, row: any, previousRow: any, nextRow: any, rowInex: number) => string | null;
    onOnDoublClick?: (value: number | null, row: any, previousRow: any, nextRow: any, rowInex: number, gridViewFactory: GridViewFactory) => void;
}): null;
export declare function LockUnLockColumn(_props: {
    fieldNameOfRow: string;
    sizeIcon?: 1 | 2 | 3;
    visible?: boolean;
    changeVisibility?: true;
    saveVisibility?: true;
}): null;
export type IGridViewColumnType = 'row' | 'heasb' | 'heasbName' | 'kala' | 'kalaName' | 'markaz1' | 'markaz1Name' | 'markaz2' | 'markaz2Name' | 'markaz3' | 'markaz3Name' | 'QTY' | 'QTYView' | 'Fee' | 'FeeView' | 'id' | 'date' | 'amount' | 'count' | 'text' | 'icon' | 'numberIconColumn' | 'lockUnLock' | 'button' | 'textView' | 'checkBox' | 'checkTree' | 'BaseStructuralGetByCode' | 'BaseInheritedDetailedAccountCode' | 'payLoad';
interface IGridFactory {
    any: any;
    columns: GridViewColumn[];
    mainStateManager: MainStateManager;
    mergeCaptionColumns: GridViewMergCaptionColumn[] | null;
    elementsOfForm: ElementsOfFormFactory;
}
export declare class GridViewColumn {
    gridViewFactory: IGridFactory;
    headerCaption: INaming | string;
    headerIcon: FontIconType | undefined;
    fieldName: any;
    width: number;
    autoHideIfEmpty: boolean;
    filterFieldName?: string | undefined;
    sortable?: boolean | undefined;
    changeVisibility?: boolean | undefined;
    saveVisibility?: boolean | undefined;
    onPrepareShowValue?: ((value: any, currentRow: any, previousRow: any, nextRow: any, rowIndex: number) => any) | undefined;
    onPrepareSetColor?: ((value: any, currentRow: any, previousRow: any, nextRow: any, rowIndex: number) => any) | undefined;
    calcSummery?: boolean | undefined;
    defaultIcon?: FontIconType | undefined;
    sizeOfIcon?: 2 | 1 | 3 | undefined;
    colorOfIcon?: string | undefined;
    onOnDoublClick?: ((value: any, row: any, previousRow: any, nextRow: any, rowInex: number, gridViewFactory: GridViewFactory) => void) | undefined;
    isCellValueEmpty: (row: any) => boolean;
    get any(): any;
    index: number;
    keyOfColumn: string;
    columnType: IGridViewColumnType;
    initialzed: boolean;
    headerText: string;
    visible: boolean;
    isFillEmptySpace: boolean;
    addedByColumnMerge?: boolean;
    gridViewMergCaptionColumn?: GridViewMergCaptionColumn;
    constructor(gridViewFactory: IGridFactory, child: any, headerCaption: INaming | string, headerIcon: FontIconType | undefined, fieldName: any, width: number, autoHideIfEmpty: boolean, filterFieldName?: string | undefined, sortable?: boolean | undefined, changeVisibility?: boolean | undefined, saveVisibility?: boolean | undefined, onPrepareShowValue?: ((value: any, currentRow: any, previousRow: any, nextRow: any, rowIndex: number) => any) | undefined, onPrepareSetColor?: ((value: any, currentRow: any, previousRow: any, nextRow: any, rowIndex: number) => any) | undefined, calcSummery?: boolean | undefined, visible?: boolean, isFillEmptySpace?: boolean, defaultIcon?: FontIconType | undefined, sizeOfIcon?: 2 | 1 | 3 | undefined, colorOfIcon?: string | undefined, onOnDoublClick?: ((value: any, row: any, previousRow: any, nextRow: any, rowInex: number, gridViewFactory: GridViewFactory) => void) | undefined);
    private getType;
    checkHeaderTextIfNeedUpdate: (newCaption: INaming) => void;
    private getHeaderText;
}
export declare class GridViewMergCaptionColumn {
    #private;
    gridViewFactory: IGridFactory;
    headerCaption: INaming;
    changeVisibility?: boolean | undefined;
    saveVisibility?: boolean | undefined;
    index: number;
    columns: GridViewColumn[] | null;
    fieldName: any;
    headerText: string;
    constructor(gridViewFactory: IGridFactory, headerCaption: INaming, visible?: boolean, changeVisibility?: boolean | undefined, saveVisibility?: boolean | undefined);
    private getHeaderText;
    set visible(value: boolean);
    get visible(): boolean;
}
export interface CellAddressGridView {
    rowindex: number;
    rowData: any;
    column?: GridViewColumn;
}
export {};
