import type { FormDialogCallback } from '../../types/formDialog.js';
import { VDataIterator } from "vuetify/components/VDataIterator";
import { VDataTable } from "vuetify/components/VDataTable";
interface Props extends /* @vue-ignore */ InstanceType<typeof VDataIterator['$props']>, /* @vue-ignore */ InstanceType<typeof VDataTable['$props']> {
    title: string;
    noDataText?: string;
    modelValue?: Record<string, any>[];
    modelKey?: string;
    dialogFullscreen?: boolean;
    initialData?: Record<string, any>;
    toolbarColor?: string;
    importable?: boolean;
    exportable?: boolean;
    insertable?: boolean;
    searchable?: boolean;
    loading?: boolean;
    viewSwitch?: boolean;
    viewSwitchMultiple?: boolean;
    cols?: string | number | boolean;
    xxl?: string | number | boolean;
    xl?: string | number | boolean;
    lg?: string | number | boolean;
    md?: string | number | boolean;
    sm?: string | number | boolean;
    itemsPerPage?: string | number;
    preferTable?: string | number | boolean;
    preferTableXxl?: string | number | boolean;
    preferTableXl?: string | number | boolean;
    preferTableLg?: string | number | boolean;
    preferTableMd?: string | number | boolean;
    preferTableSm?: string | number | boolean;
    perPageStorageKey?: string;
    perPageStorageEnabled?: boolean;
}
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): void;
declare function openDialog(item?: object): void;
declare var __VLS_29: {
    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;
    };
    page: number;
    itemsPerPage: number;
    sortBy: readonly import("vuetify/lib/types.mjs").DataTableSortItem[];
    pageCount: number;
    toggleSort: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/sort.mjs").provideSort>["toggleSort"];
    prevPage: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/paginate.mjs").providePagination>["prevPage"];
    nextPage: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/paginate.mjs").providePagination>["nextPage"];
    setPage: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/paginate.mjs").providePagination>["setPage"];
    setItemsPerPage: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/paginate.mjs").providePagination>["setItemsPerPage"];
    isSelected: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/select.mjs").provideSelection>["isSelected"];
    select: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/select.mjs").provideSelection>["select"];
    selectAll: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/select.mjs").provideSelection>["selectAll"];
    toggleSelect: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/select.mjs").provideSelection>["toggleSelect"];
    isExpanded: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/expand.mjs").provideExpanded>["isExpanded"];
    toggleExpand: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/expand.mjs").provideExpanded>["toggleExpand"];
    isGroupOpen: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/group.mjs").provideGroupBy>["isGroupOpen"];
    toggleGroup: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/group.mjs").provideGroupBy>["toggleGroup"];
    items: readonly import("vuetify/lib/components/VDataIterator/composables/items.mjs").DataIteratorItem<Record<string, any>>[];
    itemsCount: number;
    groupedItems: readonly (import("vuetify/lib/components/VDataIterator/composables/items.mjs").DataIteratorItem<Record<string, any>> | import("vuetify/lib/components/VDataTable/composables/group.mjs").Group<import("vuetify/lib/components/VDataIterator/composables/items.mjs").DataIteratorItem<Record<string, any>>> | import("vuetify/lib/components/VDataTable/composables/group.mjs").GroupSummary<import("vuetify/lib/components/VDataIterator/composables/items.mjs").DataIteratorItem<Record<string, any>>>)[];
}, __VLS_49: {
    item: import("vuetify/lib/components/VDataIterator/composables/items.mjs").DataIteratorItem<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_52: {
    color: string | undefined;
    isActive: boolean;
}, __VLS_72: {}, __VLS_80: {
    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;
    };
    page: number;
    itemsPerPage: number;
    sortBy: readonly import("vuetify/lib/types.mjs").DataTableSortItem[];
    pageCount: number;
    toggleSort: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/sort.mjs").provideSort>["toggleSort"];
    prevPage: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/paginate.mjs").providePagination>["prevPage"];
    nextPage: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/paginate.mjs").providePagination>["nextPage"];
    setPage: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/paginate.mjs").providePagination>["setPage"];
    setItemsPerPage: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/paginate.mjs").providePagination>["setItemsPerPage"];
    isSelected: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/select.mjs").provideSelection>["isSelected"];
    select: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/select.mjs").provideSelection>["select"];
    selectAll: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/select.mjs").provideSelection>["selectAll"];
    toggleSelect: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/select.mjs").provideSelection>["toggleSelect"];
    isExpanded: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/expand.mjs").provideExpanded>["isExpanded"];
    toggleExpand: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/expand.mjs").provideExpanded>["toggleExpand"];
    isGroupOpen: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/group.mjs").provideGroupBy>["isGroupOpen"];
    toggleGroup: ReturnType<typeof import("vuetify/lib/components/VDataTable/composables/group.mjs").provideGroupBy>["toggleGroup"];
    itemsCount: number;
    groupedItems: readonly (import("vuetify/lib/components/VDataIterator/composables/items.mjs").DataIteratorItem<Record<string, any>> | import("vuetify/lib/components/VDataTable/composables/group.mjs").Group<import("vuetify/lib/components/VDataIterator/composables/items.mjs").DataIteratorItem<Record<string, any>>> | import("vuetify/lib/components/VDataTable/composables/group.mjs").GroupSummary<import("vuetify/lib/components/VDataIterator/composables/items.mjs").DataIteratorItem<Record<string, any>>>)[];
}, __VLS_106: {}, __VLS_114: {
    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_127: {
    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_179: never, __VLS_180: {
    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_266: any;
type __VLS_Slots = {} & {
    [K in NonNullable<typeof __VLS_179>]?: (props: typeof __VLS_180) => any;
} & {
    default?: (props: typeof __VLS_29) => any;
} & {
    item?: (props: typeof __VLS_49) => any;
} & {
    loader?: (props: typeof __VLS_52) => any;
} & {
    loaderItem?: (props: typeof __VLS_72) => any;
} & {
    header?: (props: typeof __VLS_80) => any;
} & {
    title?: (props: typeof __VLS_106) => any;
} & {
    search?: (props: typeof __VLS_114) => any;
} & {
    toolbarItems?: (props: typeof __VLS_127) => any;
} & {
    form?: (props: typeof __VLS_266) => any;
};
declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
    noDataText: string;
    dialogFullscreen: boolean;
    modelKey: string;
    toolbarColor: string;
    importable: boolean;
    exportable: boolean;
    insertable: boolean;
    searchable: boolean;
    loading: boolean;
    viewSwitch: boolean;
    viewSwitchMultiple: boolean;
    cols: number;
    xxl: boolean;
    xl: boolean;
    lg: number;
    md: number;
    sm: number;
    itemsPerPage: number;
    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;
    }>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    "update:modelValue": (...args: any[]) => void;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
    noDataText: string;
    dialogFullscreen: boolean;
    modelKey: string;
    toolbarColor: string;
    importable: boolean;
    exportable: boolean;
    insertable: boolean;
    searchable: boolean;
    loading: boolean;
    viewSwitch: boolean;
    viewSwitchMultiple: boolean;
    cols: number;
    xxl: boolean;
    xl: boolean;
    lg: number;
    md: number;
    sm: number;
    itemsPerPage: number;
    perPageStorageEnabled: boolean;
}>>> & Readonly<{
    "onUpdate:modelValue"?: ((...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];
}) & {};
