import * as react_jsx_runtime from 'react/jsx-runtime';
import React__default from 'react';

declare const styleInput = "border-input file:text-foreground placeholder:text-muted-foreground focus-visible:ring-ring flex h-10 w-full rounded-md border bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm";
interface EditableOption {
    value: string | number | boolean;
    label: string;
}
interface EditableColumn<T> {
    key: keyof T;
    label: string;
    type?: "text" | "number" | "select" | "boolean";
    required?: boolean;
    options?: EditableOption[];
    render?: (value: any, row: T, rowIndex: number) => React__default.ReactNode;
    editable?: boolean;
}
interface EditableTableProps<T> {
    data: T[];
    columns: EditableColumn<T>[];
    rowKey: keyof T;
    isIntegrationTable?: boolean;
    onSave: (field: keyof T, value: any, row: T) => Promise<void> | void;
    onChange?: (rowId: number, field: keyof T, value: any) => void;
    onCancel?: (rowId: number, field: keyof T) => void;
    className?: string;
}
declare function EditableTable<T extends Record<string, any>>({ data, columns, rowKey, onSave, onChange, onCancel, className, isIntegrationTable, }: EditableTableProps<T>): react_jsx_runtime.JSX.Element;

export { EditableTable, styleInput };
export type { EditableColumn };
