import type { Component } from "vue"; import { Dialog } from 'quasar'; import type { QTableColumn, QTableProps } from 'quasar'; export interface SearchOptionsContext { filters: Record; columnValue: any; column: LTableColumn; } export type SearchOptionsResolver = (ctx: SearchOptionsContext) => Promise[]>; export type LTableColumn = QTableColumn & { searchType?: "date" | "text" | "number" | "select" | "boolean"; searchable?: boolean; searchPlaceholder?: string; searchOptions?: Record[] | SearchOptionsResolver; searchDependsOn?: string[]; searchMultiple?: boolean; searchIndex?: string; component?: Component; componentProps?: ((row: any) => Record); to?: (row: any) => string | null; gql?: Record; /** * @deprecated use gql instead */ gqlField?: string | Array | Object; searchMethod?: "equals" | "contains" | "range"; autoWidth?: boolean; }; export type LTableProps = QTableProps & { columns?: Array; actions?: Array<'view' | 'edit' | 'delete' | 'update'>; sortBy?: string; rowKey?: string; modelName?: any; searchable?: boolean; selected?: Array; onRequestData?: (request: LTableRequest) => void; addComponent?: Dialog; addComponentProps?: any; rows?: Array; name?: string; searchStyle?: string; canExpandRow?: (row: any) => boolean; }; export interface LTableRequest { sort: string; fields: Array | Object; gql: { __args: { filters: any; sort: string; }; data: { __args: { limit?: number; offset?: number; }; [key: string]: any; }; meta: { total: boolean; key: boolean; name: boolean; }; }; offset: number; limit: number; loadData: (model: string, filters: any, fields: Array | Object) => void; loadObjects: (model: string, filters: any, fields: Array | Object) => void; setData: (data: { data: Array<{ data: any; }>; meta: { total: number; key: string; name: string; }; }) => void; } declare function requestServerInteraction(): void; declare var __VLS_24: { props: any; }, __VLS_55: any, __VLS_119: any, __VLS_122: string, __VLS_123: any, __VLS_154: any, __VLS_157: any, __VLS_327: string, __VLS_328: any; type __VLS_Slots = {} & { [K in NonNullable]?: (props: typeof __VLS_123) => any; } & { [K in NonNullable]?: (props: typeof __VLS_328) => any; } & { 'header-selection'?: (props: typeof __VLS_24) => any; } & { 'top-selection'?: (props: typeof __VLS_55) => any; } & { actions?: (props: typeof __VLS_119) => any; } & { 'row-expand'?: (props: typeof __VLS_154) => any; } & { 'top-right'?: (props: typeof __VLS_157) => any; }; declare const __VLS_base: import("vue").DefineComponent any; "request-data": (p: LTableRequest) => any; "update:selected": (p: any[]) => any; }, string, import("vue").PublicProps, Readonly & Readonly<{ onDelete?: ((p: any) => any) | undefined; "onRequest-data"?: ((p: LTableRequest) => any) | undefined; "onUpdate:selected"?: ((p: any[]) => any) | undefined; }>, { flat: boolean; fullscreen: boolean; dark: boolean | null; actions: Array<"view" | "edit" | "delete" | "update">; dense: boolean; pagination: { sortBy?: string | null; descending?: boolean; page?: number; rowsPerPage?: number; rowsNumber?: number; }; selected: any[]; bordered: boolean; noDataLabel: string; loadingLabel: string; rowsPerPageLabel: string; rowsPerPageOptions: readonly any[]; selection: "none" | "single" | "multiple"; searchable: boolean; canExpandRow: (row: any) => boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; declare const __VLS_export: __VLS_WithSlots; declare const _default: typeof __VLS_export; export default _default; type __VLS_WithSlots = T & { new (): { $slots: S; }; };