/** * @template {typeof Model} T * @param {T} ModelClass * @param {SearchParams} params * @param {UseModelOptions} [options] * @returns {InstanceType} */ export function useModel(ModelClass: T, params: SearchParams, options?: UseModelOptions | undefined): InstanceType; /** * @template {typeof Model} T * @param {T} ModelClass * @param {UseModelWithSampleDataOptions} [options] * @returns {InstanceType} */ export function useModelWithSampleData(ModelClass: T, params: any, options?: UseModelWithSampleDataOptions | undefined): InstanceType; export function _makeFieldFromPropertyDefinition(name: any, definition: any, relatedPropertyField: any): any; export function addPropertyFieldDefs(orm: any, resModel: any, context: any, fields: any, groupBy: any): Promise; /** * @typedef {import("@web/env").OdooEnv} OdooEnv * @typedef {import("@web/search/search_model").SearchParams} SearchParams * @typedef {import("services").ServiceFactories} Services * * @typedef {{ * beforeFirstLoad?: () => any; * }} UseModelOptions * * @typedef {{ * lazy?: boolean; * onLoad?: (searchParams: SearchParams) => any; * }} UseModelWithSampleDataOptions */ export class Model { static services: any[]; /** * @param {OdooEnv} env * @param {SearchParams} params * @param {Services} services */ constructor(env: OdooEnv, params: SearchParams, services: Services); env: import('../env').OdooEnv; orm: any; bus: any; isReady: any; _useSampleModel: any; whenReady: PromiseWithResolvers; set useSampleModel(value: any); get useSampleModel(): any; /** * @param {SearchParams} params * @param {Services} services */ setup(): void; /** * @param {Partial} _params */ load(_params: Partial): Promise; /** * This function is meant to be overriden by models that want to implement * the sample data feature. It should return true iff the last loaded state * actually contains data. If not, another load will be done (if the sample * feature is enabled) with the orm service substituted by another using the * SampleServer, to have sample data to display instead of an empty screen. * * @returns {boolean} */ hasData(): boolean; /** * This function is meant to be overriden by models that want to combine * sample data with real groups that exist on the server. * * @returns {boolean} */ getGroups(): boolean; notify(): void; } export type OdooEnv = import('../env').OdooEnv; export type SearchParams = import('../search/search_model').SearchParams; export type Services = import('services').ServiceFactories; export type UseModelOptions = { beforeFirstLoad?: () => any; }; export type UseModelWithSampleDataOptions = { lazy?: boolean; onLoad?: (searchParams: SearchParams) => any; };