import type { FormData, FormFieldProps, FormProps, FormSchema, SelectItem, SelectProps, SelectValue } from '@nuxt/ui'; import type { MaybeRef, VNode } from 'vue'; import type { KeysMatching } from '../types'; import type { DatePickerProps } from './DatePicker.vue'; type EnumSelectItem = SelectValue | Required, 'value' | 'label'>>; interface Presets { Input: { modelValue: string | undefined; placeholder?: string; }; InputNumber: { modelValue: number | undefined; placeholder?: string; }; Date: { modelValue: DatePickerProps['modelValue']; withTime?: DatePickerProps['withTime']; }; DateRange: { modelValue: DatePickerProps['modelValue']; withTime?: DatePickerProps['withTime']; }; Select: Pick, 'modelValue' | 'items' | 'placeholder'>; MultiSelect: Pick, 'modelValue' | 'items' | 'placeholder'>; Checkbox: { modelValue: boolean | undefined; }; Switch: { modelValue: boolean | undefined; }; } type GetPresetProps = { [P in keyof Omit]: MaybeRef; }; type PresetField = { [P in keyof Presets]: { name: KeysMatching, Presets[P]['modelValue']>; render?: P; } & GetPresetProps; }[keyof Presets]; interface BaseField { name: keyof FormData & string; render?: (state: FormData, field: FiltersField) => VNode; } export type FiltersField = Omit & (BaseField | PresetField); export type TableFiltersModel = FormData; export interface TableFiltersProps[] = FiltersField[]> extends Omit, 'transform' | 'onSubmit' | 'id' | 'state' | 'nested' | 'name'> { source: FormData; fields?: F; } export type TableFiltersSlots = { [K in Extract, string>]: (props: { model: FormData[K]; state: FormData; updateModel: (value: FormData[K]) => any; }) => any; }; export interface TableFiltersEmits { submit: [TableFiltersModel]; reset: [TableFiltersModel]; } declare const _default: typeof __VLS_export; export default _default; declare const __VLS_export: [] = FiltersField[]>(__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_PrettifyLocal>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable>["expose"], __VLS_setup?: Promise<{ props: import("vue").PublicProps & __VLS_PrettifyLocal<(TableFiltersProps & { modelValue?: TableFiltersModel; }) & { onReset?: ((args_0: import("@nuxt/ui").InferOutput) => any) | undefined; onSubmit?: ((args_0: import("@nuxt/ui").InferOutput) => any) | undefined; "onUpdate:modelValue"?: ((value: import("@nuxt/ui").InferOutput | undefined) => any) | undefined; }> & (typeof globalThis extends { __VLS_PROPS_FALLBACK: infer P; } ? P : {}); expose: (exposed: import("vue").ShallowUnwrapRef<{ appliedFields: import("vue").ComputedRef[]>; clearField: (field: FiltersField) => void; reset: () => void; submit: (data: TableFiltersModel) => void; }>) => void; attrs: any; slots: TableFiltersSlots; emit: (((evt: "reset", args_0: import("@nuxt/ui").InferOutput) => void) & ((evt: "submit", args_0: import("@nuxt/ui").InferOutput) => void)) & ((evt: "update:modelValue", value: import("@nuxt/ui").InferOutput | undefined) => void); }>) => import("vue").VNode & { __ctx?: Awaited; }; type __VLS_PrettifyLocal = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};