/**
 * FormTable is a schema-driven form field component that binds model data, renders field UI, and emits normalized updates.
 * This doc block is consumed by vue-docgen for generated API documentation.
 */
import { VDataTable } from 'vuetify/components/VDataTable';
import type { FormDialogCallback } from '../../types/formDialog.js';
import { type PersistSlimProps } from '../../composables/localStorageModel.js';
interface Props extends /* @vue-ignore */ InstanceType<typeof VDataTable['$props']> {
    title: string;
    noDataText?: string;
    modelValue?: Record<string, any>[];
    modelKey?: string;
    dialogWidth?: string | number;
    dialogMaxWidth?: string | number;
    dialogHeight?: string | number;
    dialogMaxHeight?: string | number;
    dialogFullscreen?: boolean;
    initialData?: Record<string, any>;
    toolbarColor?: string;
    importable?: boolean;
    exportable?: boolean;
    insertable?: boolean;
    searchable?: boolean;
    inputPad?: boolean;
    inputPadOnly?: boolean;
    saveAndStay?: boolean;
    stringFields?: Array<string>;
    perPageStorageKey?: string;
    perPageStorageEnabled?: boolean;
}
/**
 * Public props accepted by FormTable.
 * Document each prop field with intent, defaults, and side effects for clear generated docs.
 */
type __VLS_Props = Props & PersistSlimProps;
declare function setSearch(keyword: string): void;
declare function createItem(item: Record<string, any>, callback?: FormDialogCallback): void;
declare function updateItem(newItem: Record<string, any>, callback?: FormDialogCallback): void;
declare function moveUpItem(currentItem: Record<string, any>, callback?: FormDialogCallback): void;
declare function moveDownItem(currentItem: Record<string, any>, callback?: FormDialogCallback): void;
declare function moveToItem(currentItem: Record<string, any>, callback?: FormDialogCallback): void;
declare function deleteItem(deleteItem: Record<string, any>, callback?: FormDialogCallback): Promise<void>;
declare function openDialog(item?: object): void;
declare var __VLS_22: {
    items: Record<string, any>[];
    operation: {
        openDialog: typeof openDialog;
        createItem: typeof createItem;
        updateItem: typeof updateItem;
        deleteItem: typeof deleteItem;
        moveUpItem: typeof moveUpItem;
        moveDownItem: typeof moveDownItem;
        moveToItem: typeof moveToItem;
        setSearch: typeof setSearch;
    };
}, __VLS_48: {}, __VLS_56: {
    items: Record<string, any>[];
    operation: {
        openDialog: typeof openDialog;
        createItem: typeof createItem;
        updateItem: typeof updateItem;
        deleteItem: typeof deleteItem;
        moveUpItem: typeof moveUpItem;
        moveDownItem: typeof moveDownItem;
        moveToItem: typeof moveToItem;
        setSearch: typeof setSearch;
    };
}, __VLS_69: {
    items: Record<string, any>[];
    operation: {
        openDialog: typeof openDialog;
        createItem: typeof createItem;
        updateItem: typeof updateItem;
        deleteItem: typeof deleteItem;
        moveUpItem: typeof moveUpItem;
        moveDownItem: typeof moveDownItem;
        moveToItem: typeof moveToItem;
        setSearch: typeof setSearch;
    };
}, __VLS_99: never, __VLS_100: {
    operation: {
        openDialog: typeof openDialog;
        createItem: typeof createItem;
        updateItem: typeof updateItem;
        deleteItem: typeof deleteItem;
        moveUpItem: typeof moveUpItem;
        moveDownItem: typeof moveDownItem;
        moveToItem: typeof moveToItem;
        setSearch: typeof setSearch;
    };
    isReadonly: import("vue").ComputedRef<boolean>;
    isDisabled: import("vue").ComputedRef<boolean>;
}, __VLS_153: any, __VLS_156: any, __VLS_159: any, __VLS_161: {
    operation: {
        openDialog: typeof openDialog;
        createItem: typeof createItem;
        updateItem: typeof updateItem;
        deleteItem: typeof deleteItem;
        moveUpItem: typeof moveUpItem;
        moveDownItem: typeof moveDownItem;
        moveToItem: typeof moveToItem;
        setSearch: typeof setSearch;
    };
    isReadonly: import("vue").ComputedRef<boolean>;
    isDisabled: import("vue").ComputedRef<boolean>;
}, __VLS_181: any;
type __VLS_Slots = {} & {
    [K in NonNullable<typeof __VLS_99>]?: (props: typeof __VLS_100) => any;
} & {
    header?: (props: typeof __VLS_22) => any;
} & {
    title?: (props: typeof __VLS_48) => any;
} & {
    search?: (props: typeof __VLS_56) => any;
} & {
    toolbarItems?: (props: typeof __VLS_69) => any;
} & {
    form?: (props: typeof __VLS_153) => any;
} & {
    formTitle?: (props: typeof __VLS_156) => any;
} & {
    formAction?: (props: typeof __VLS_159) => any;
} & {
    inputPad?: (props: typeof __VLS_161) => any;
} & {
    form?: (props: typeof __VLS_181) => any;
};
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
    noDataText: string;
    dialogFullscreen: boolean;
    modelKey: string;
    toolbarColor: string;
    importable: boolean;
    exportable: boolean;
    insertable: boolean;
    searchable: boolean;
    inputPad: boolean;
    inputPadOnly: boolean;
    saveAndStay: boolean;
    stringFields: () => never[];
    perPageStorageEnabled: boolean;
}>>, {
    errorMessages: import("vue").ComputedRef<(string & string[]) | (readonly string[] & string[]) | undefined>;
    isValid: import("vue").ComputedRef<boolean | null | undefined>;
    reset: () => Promise<void> | undefined;
    resetValidation: () => Promise<void> | undefined;
    validate: () => Promise<string[]> | undefined;
    operation: import("vue").Ref<{
        openDialog: typeof openDialog;
        createItem: typeof createItem;
        updateItem: typeof updateItem;
        deleteItem: typeof deleteItem;
        moveUpItem: typeof moveUpItem;
        moveDownItem: typeof moveDownItem;
        moveToItem: typeof moveToItem;
        setSearch: typeof setSearch;
    }, {
        openDialog: typeof openDialog;
        createItem: typeof createItem;
        updateItem: typeof updateItem;
        deleteItem: typeof deleteItem;
        moveUpItem: typeof moveUpItem;
        moveDownItem: typeof moveDownItem;
        moveToItem: typeof moveToItem;
        setSearch: typeof setSearch;
    } | {
        openDialog: typeof openDialog;
        createItem: typeof createItem;
        updateItem: typeof updateItem;
        deleteItem: typeof deleteItem;
        moveUpItem: typeof moveUpItem;
        moveDownItem: typeof moveDownItem;
        moveToItem: typeof moveToItem;
        setSearch: typeof setSearch;
    }>;
    items: import("vue").Ref<Record<string, any>[], Record<string, any>[]>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    "update:modelValue": (...args: any[]) => void;
    "open:dialog": (...args: any[]) => void;
    "close:dialog": (...args: any[]) => void;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
    noDataText: string;
    dialogFullscreen: boolean;
    modelKey: string;
    toolbarColor: string;
    importable: boolean;
    exportable: boolean;
    insertable: boolean;
    searchable: boolean;
    inputPad: boolean;
    inputPadOnly: boolean;
    saveAndStay: boolean;
    stringFields: () => never[];
    perPageStorageEnabled: boolean;
}>>> & Readonly<{
    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
    "onOpen:dialog"?: ((...args: any[]) => any) | undefined;
    "onClose:dialog"?: ((...args: any[]) => any) | undefined;
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_TypePropsToOption<T> = {
    [K in keyof T]-?: {} extends Pick<T, K> ? {
        type: import('vue').PropType<Required<T>[K]>;
    } : {
        type: import('vue').PropType<T[K]>;
        required: true;
    };
};
type __VLS_WithDefaults<P, D> = {
    [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
        default: D[K];
    }> : P[K];
};
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
type __VLS_PrettifyLocal<T> = (T extends any ? {
    [K in keyof T]: T[K];
} : {
    [K in keyof T as K]: T[K];
}) & {};
