import { AllowedComponentProps } from 'vue';
import { Column } from '@tanstack/vue-table';
import { ComponentCustomProps } from 'vue';
import { MaybeRef } from 'vue';
import { RendererElement } from 'vue';
import { RendererNode } from 'vue';
import { ShallowUnwrapRef } from 'vue';
import { Table } from '@tanstack/vue-table';
import { VisibilityState } from '@tanstack/vue-table';
import { VNode } from 'vue';
import { VNodeProps } from 'vue';

export declare interface DataTableColumnVisibilityProps<TData = unknown> {
    table?: Table<TData> | null;
    /** Visibility slice of `DataTable` `v-model:column-ui` so the list stays reactive. */
    columnVisibility?: MaybeRef<VisibilityState>;
    label?: string;
    align?: 'left' | 'right';
    getColumnLabel?: (column: Column<TData, unknown>) => string;
}

declare const _default: <TData>(__VLS_props: {
    label?: string | undefined;
    table?: Table<TData> | null | undefined;
    align?: "left" | "right" | undefined;
    columnVisibility?: MaybeRef<VisibilityState> | undefined;
    getColumnLabel?: ((column: Column<TData, unknown>) => string) | undefined;
} & VNodeProps & AllowedComponentProps & ComponentCustomProps, __VLS_ctx?: {
    attrs: any;
    slots: {
        toggle?(_: {
            isActive: boolean;
            toggle: () => Promise<void>;
        }): any;
    };
    emit: any;
} | undefined, __VLS_expose?: ((exposed: ShallowUnwrapRef<    {}>) => void) | undefined, __VLS_setup?: Promise<{
    props: {
        label?: string | undefined;
        table?: Table<TData> | null | undefined;
        align?: "left" | "right" | undefined;
        columnVisibility?: MaybeRef<VisibilityState> | undefined;
        getColumnLabel?: ((column: Column<TData, unknown>) => string) | undefined;
    } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
    expose(exposed: ShallowUnwrapRef<    {}>): void;
    attrs: any;
    slots: {
        toggle?(_: {
            isActive: boolean;
            toggle: () => Promise<void>;
        }): any;
    };
    emit: any;
}>) => VNode<RendererNode, RendererElement, {
[key: string]: any;
}> & {
    __ctx?: {
        props: {
            label?: string | undefined;
            table?: Table<TData> | null | undefined;
            align?: "left" | "right" | undefined;
            columnVisibility?: MaybeRef<VisibilityState> | undefined;
            getColumnLabel?: ((column: Column<TData, unknown>) => string) | undefined;
        } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
        expose(exposed: ShallowUnwrapRef<    {}>): void;
        attrs: any;
        slots: {
            toggle?(_: {
                isActive: boolean;
                toggle: () => Promise<void>;
            }): any;
        };
        emit: any;
    } | undefined;
};
export default _default;

export { }
