import { ReactElement } from "react";
export interface Styles {
    backgroundColor: string;
    color: string;
    fontFamily?: string;
}
export interface DisplayPropertiesConditions {
    value: string;
    styles: Styles;
}
export interface DisplayProperties {
    displayType: string;
    styles: Styles;
    conditions: DisplayPropertiesConditions[];
}
export interface Col {
    name: string;
    type: string;
    value: string;
    isPrimary: boolean;
    isForeignKey: boolean;
    hasManyRelationship?: boolean;
    isRequired?: boolean;
    staticDropDown?: StaticDropDown[];
    tableName?: string;
    cols?: string[];
    placeholder?: string;
    returnColumn?: string;
    displayColumns?: string[];
    displayProperties?: DisplayProperties;
}
export declare enum RecordDisplayType {
    Table = 0,
    Grid = 1
}
export declare enum AddEditDisplayType {
    Modal = 0,
    Drawer = 1,
    Simple = 2
}
export interface GridCardDisplayType {
    titleCol: string;
    bodyCol: string;
    noOfCols: number;
    imageCol?: string;
}
export interface Panel {
    title: string;
    panels: string[];
}
export interface TableType {
    primaryColor: string;
    secondaryColor: string;
    isModal: boolean;
    title?: string;
    tablename: string;
    colorRow?: string;
    bgRow?: string;
    fontFamily?: string;
    fontSizeRow?: string;
    fontSizeHeader?: string;
    fontWeightRow?: string;
    showAllBorders?: boolean;
    showRoundedTitle?: boolean;
    showControls?: boolean;
    showSearch?: boolean;
    showPagination?: boolean;
    showBackground?: boolean;
    selectableRows?: boolean;
    col: Col[];
    panels: Panel[];
    addEditDisplayType: AddEditDisplayType;
    recordsDisplayType: RecordDisplayType;
    searchByCol: string[];
    gridCardDisplay?: GridCardDisplayType;
}
export interface inputCardProps {
    title: string;
    onChange: any;
    noOfCols: number;
    inputs: FieldProp[];
}
interface FieldProp {
    label: string;
    spacing: string;
    placeholder: string;
}
export interface Colors {
    primary: string;
    secondary: string;
}
export interface Input {
    value: string;
    placeholder: string;
    onChange: any;
}
export interface StaticDropDown {
    value: any;
    label: any;
}
export interface BabbuMenuItems {
    label: string;
    icon: any;
    path: any;
    onClick: any;
}
export interface Offer {
    open: any;
    close: any;
    title: string;
    logo: string;
    offerImage: string;
    productName: string;
    description: string;
    validity: string;
    redeem: any;
}
export interface MessagingType extends Colors {
    messageTable: string;
    messageCol: Col[];
    userTable: string;
    userCol: Col[];
}
export interface ConversationType extends Colors {
    id: any;
    title: string;
    shortMessage: string;
    selected?: boolean;
    onConvoSelect?: any;
}
export interface CustomSearchType extends Input {
    records: any[];
    filterCols: string[];
}
export interface GridLayoutType {
    col: number;
    gridLayoutComponents: ReactElement<any, any>[];
}
export {};
