import { type CSSProperties, type ComponentType } from "react";
/**
 * @internal
 */
export declare function propCombinationsFor<TProps extends object>(baseProps: TProps): <TProp extends keyof TProps>(prop: TProp, values: TProps[TProp][], additionalProps?: Partial<TProps> | undefined) => IPropCombination<TProps, TProp>;
/**
 * @internal
 */
export interface IPropCombination<TProps extends object, TProp extends keyof TProps> {
    prop: TProp;
    values: TProps[TProp][];
    baseProps?: Partial<TProps>;
}
/**
 * @internal
 */
export interface IComponentTableProps<TProps extends object> {
    columnsBy?: IPropCombination<TProps, keyof TProps> | undefined;
    rowsBy: IPropCombination<TProps, keyof TProps>[];
    baseProps?: Partial<TProps>;
    Component: ComponentType<TProps>;
    codeSnippet?: string;
    debug?: boolean;
    cellWidth?: number;
    cellHeight?: number;
    align?: "center" | "flex-start";
    cellStyle?: (props: TProps) => CSSProperties | undefined;
}
interface IComponentTableRowProps<TProps extends object> {
    columnsBy?: IPropCombination<TProps, keyof TProps> | undefined;
    row: IPropCombination<TProps, keyof TProps>;
    baseProps?: Partial<TProps>;
    Component: ComponentType<TProps>;
    codeSnippet?: string;
    debug?: boolean;
    cellWidth?: number;
    cellHeight?: number;
    align?: "center" | "flex-start";
    cellStyle?: (props: TProps) => CSSProperties | undefined;
}
interface IComponentTableCellProps<TProps extends object> {
    Component: ComponentType<TProps>;
    codeSnippet?: string;
    props: TProps;
    cellWidth?: number;
    cellHeight?: number;
    debug?: boolean;
    align?: "center" | "flex-start";
    cellStyle?: (props: TProps) => CSSProperties | undefined;
}
/**
 * @internal
 */
export declare function ComponentTable<TProps extends object>({ Component, columnsBy, rowsBy, baseProps, debug, codeSnippet, cellWidth, cellHeight, align, cellStyle }: IComponentTableProps<TProps>): import("react/jsx-runtime").JSX.Element;
/**
 * @internal
 */
export declare function ComponentTableRow<TProps extends object>({ Component, columnsBy, row, baseProps, codeSnippet, debug, cellWidth, cellHeight, align, cellStyle }: IComponentTableRowProps<TProps>): import("react/jsx-runtime").JSX.Element;
/**
 * @internal
 */
export declare function ComponentTableCell<TProps extends object>({ Component, codeSnippet, props, cellWidth, cellHeight, debug, align, cellStyle }: IComponentTableCellProps<TProps>): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=ComponentTable.d.ts.map