export declare type RuleResultType = {
    valid: boolean;
    type: string;
};
export declare type ResultValidData = {
    valid: boolean;
    errors: Array<RuleResultType>;
};
export declare type ErrorRowType = {
    column: string;
    errors: ResultValidData;
};
export declare type BindingErrorsType = {
    row: number;
    errors: Array<ErrorRowType>;
};
export declare type TValidationRules = {
    required?: boolean;
    numeric?: boolean;
    minLength?: number;
    maxLength?: number;
    alphaNum?: boolean;
};
export declare type ValueOf<T> = T[keyof T];
export declare type ValidationFunctionType = (type: keyof TValidationRules, opt?: number | boolean) => RuleResultType;
export declare type RulesObjectType = {
    [key in keyof TValidationRules]: ValidationFunctionType;
};
export declare type NormalizeHeaderOptionType = {
    key: string;
    value: string;
};
export declare type OptionsType = {
    hasHeader: boolean;
    normalizeHeader?: NormalizeHeaderOptionType;
};
export declare type FileObjectType = {
    fileName: string;
    size: number;
    content?: string | ArrayBuffer | null;
};
export declare type ParserDataObjectType = {
    sheetName: string;
    countRows: number;
    header: Array<string>;
    cols: Array<{
        key: number;
        name: string;
    }>;
    data: Array<any>;
};
export declare type ValidationOptionsType = {
    [key in keyof TValidationRules]: ValueOf<TValidationRules>;
};
export declare type BindingHeaderObjectType = {
    key: string;
    property: string;
    validationOptions: ValidationOptionsType;
    inner?: Array<{
        key: string;
        property: string;
        prefix?: string;
    }>;
};
export declare type BindingsModelObjectType = {
    key: string;
    property: string;
    type: string;
    validationOptions: ValidationOptionsType;
    inner?: Array<{
        key: string;
        property: string;
        prefix?: string;
    }>;
};
export declare type BindRowErrorObjectType = {
    row: number;
    errors: {
        column: string;
        errors: {
            valid: boolean;
            errors: {
                type: string;
                valid: boolean;
            }[];
        };
    }[];
};
export declare type BindingRowItemType = {
    ID: number;
    [key: string]: any;
};
export declare type ValidateRowReturnType = {
    valid: boolean;
    row?: number;
    errors: Array<ErrorRowType>;
};
interface BindResult<T> {
    [key: string]: T;
}
export declare type BindResultObjectType<T> = BindResult<T> & {
    ID: number;
};
export declare type BindTableHeaderObjectType = {
    columnItemKey: string;
    columnItemLabel: string;
    key: string;
    property: string;
    type: string;
    validationOptions: {
        required: boolean;
        numeric?: boolean;
    };
    inner: Array<any>;
};
export declare type SelectedRowObjectType<T> = BindResult<T> & {
    ID?: number;
    selected?: boolean;
};
export declare type BindDataRowUpdateType = {
    [key: string]: string | number;
    ID: number;
};
export declare type BindDataRowUpdateModalType = {
    row: BindDataRowUpdateType;
    id: number;
};
export {};
