import { SdTableColumn } from './table-column.model';
export interface SdTableConfigOption<T = any> {
    visible?: boolean;
    storage?: 'session' | 'server';
    customColumn?: boolean;
    args?: {
        [key: string]: any;
    };
    systemColumn?: {
        permission?: 'READ' | 'CREATE' | 'UPDATE' | 'DELETE';
        args?: {
            [key: string]: any;
        };
    };
}
export interface SdOriginColumn {
    field: string;
    title: string;
    width?: string;
    invisible?: boolean;
}
export interface SdColumnConfiguration {
    origin: SdOriginColumn;
    title?: string;
    width?: string;
    invisible?: boolean;
    fixed?: boolean;
    htmlTemplate?: string;
}
export interface SdTableConfiguration {
    columns?: SdColumnConfiguration[];
}
export interface SdTableConfigurationResult {
    column: {
        [field: string]: {
            title?: string;
            width?: string;
        };
    };
    fixedColumn: {
        [field: string]: {
            title?: string;
            width?: string;
        };
    };
    firstColumns: SdTableColumn[];
    secondColumns: SdTableColumn[];
    firstHeaders: string[];
    secondHeaders: string[];
    displayedColumns: string[];
    displayedFooters: string[];
    multipleHeader: boolean;
}
