import type { TableConfigValue, ColumnValue, ColumnGroupValue } from './schema.js';
export type { TableConfigValue, ColumnValue, ColumnGroupValue, PaginationValue, InitialStateValue } from './schema.js';
export { TableConfig, createTableConfig, getColumnTechnicalKey } from './schema.js';
export type TableInstance = import('@tanstack/vue-table').Table<unknown>;
declare module '@tanstack/vue-table' {
    interface ColumnMeta<TData extends import('@tanstack/vue-table').RowData, TValue> {
        tooltip?: string;
        grow?: boolean;
    }
}
declare const _default: typeof __VLS_export;
export default _default;
declare const __VLS_export: import("vue").DefineComponent<{
    config?: TableConfigValue;
    rows?: Array<unknown>;
}, import("@tanstack/vue-table").Table<unknown>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    "update:config": (value: Readonly<{
        kind: "shwfed.component.table";
        id?: string;
        displayName?: string;
        columns: ReadonlyArray<ColumnValue>;
        groups: ReadonlyArray<ColumnGroupValue>;
        dataSource?: Readonly<{
            request?: string;
            data: string;
            total?: string;
        }>;
        actions?: import("./schema.js").TableActionsValue;
        query?: import("../form/schema.js").FormConfigValue;
        rowKey?: string;
        cellStyle?: string;
        style?: string;
        pagination?: import("effect/Schema").Schema.Type<typeof import("./schema.js").Pagination>;
        persistQuery?: boolean;
        initialState?: import("effect/Schema").Schema.Type<import("effect/Schema").Struct<{
            columnVisibility: import("effect/Schema").optional<import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Boolean>>;
            columnOrder: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
            columnPinning: import("effect/Schema").optional<import("effect/Schema").Struct<{
                left: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
                right: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
            }>>;
            rowPinning: import("effect/Schema").optional<import("effect/Schema").Struct<{
                top: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
                bottom: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
            }>>;
            sorting: import("effect/Schema").optional<import("effect/Schema").Array$<import("effect/Schema").Struct<{
                id: import("effect/Schema").SchemaClass<string, string, never>;
                desc: import("effect/Schema").optionalWith<typeof import("effect/Schema").Boolean, {
                    default: () => false;
                }>;
            }>>>;
            expanded: import("effect/Schema").optional<import("effect/Schema").Union<[typeof import("effect/Schema").Boolean, import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Boolean>]>>;
            grouping: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
            columnSizing: import("effect/Schema").optional<import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Number>>;
            rowSelection: import("effect/Schema").optional<import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Boolean>>;
        }>>;
    }> | undefined) => any;
    "update:rows": (value: unknown[]) => any;
}, string, import("vue").PublicProps, Readonly<{
    config?: TableConfigValue;
    rows?: Array<unknown>;
}> & Readonly<{
    "onUpdate:config"?: ((value: Readonly<{
        kind: "shwfed.component.table";
        id?: string;
        displayName?: string;
        columns: ReadonlyArray<ColumnValue>;
        groups: ReadonlyArray<ColumnGroupValue>;
        dataSource?: Readonly<{
            request?: string;
            data: string;
            total?: string;
        }>;
        actions?: import("./schema.js").TableActionsValue;
        query?: import("../form/schema.js").FormConfigValue;
        rowKey?: string;
        cellStyle?: string;
        style?: string;
        pagination?: import("effect/Schema").Schema.Type<typeof import("./schema.js").Pagination>;
        persistQuery?: boolean;
        initialState?: import("effect/Schema").Schema.Type<import("effect/Schema").Struct<{
            columnVisibility: import("effect/Schema").optional<import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Boolean>>;
            columnOrder: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
            columnPinning: import("effect/Schema").optional<import("effect/Schema").Struct<{
                left: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
                right: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
            }>>;
            rowPinning: import("effect/Schema").optional<import("effect/Schema").Struct<{
                top: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
                bottom: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
            }>>;
            sorting: import("effect/Schema").optional<import("effect/Schema").Array$<import("effect/Schema").Struct<{
                id: import("effect/Schema").SchemaClass<string, string, never>;
                desc: import("effect/Schema").optionalWith<typeof import("effect/Schema").Boolean, {
                    default: () => false;
                }>;
            }>>>;
            expanded: import("effect/Schema").optional<import("effect/Schema").Union<[typeof import("effect/Schema").Boolean, import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Boolean>]>>;
            grouping: import("effect/Schema").optional<import("effect/Schema").Array$<typeof import("effect/Schema").String>>;
            columnSizing: import("effect/Schema").optional<import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Number>>;
            rowSelection: import("effect/Schema").optional<import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Boolean>>;
        }>>;
    }> | undefined) => any) | undefined;
    "onUpdate:rows"?: ((value: unknown[]) => any) | undefined;
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
