/** * ModelScopeDescriptor type. * @typedef {object} ModelScopeDescriptor * @property {true} [velociousModelScopeDescriptor] - Internal marker. * @property {(...args: Array>) => ReturnType} callback - Scope callback. * @property {typeof import("../database/record/index.js").default | import("../frontend-models/base.js").FrontendModelClass} modelClass - Owning model class. * @property {Array>} scopeArgs - Scope arguments. */ export type ModelScopeDescriptor = { /** * - Internal marker. */ velociousModelScopeDescriptor?: true; /** * - Scope callback. */ callback: (...args: Array>) => ReturnType; /** * - Owning model class. */ modelClass: typeof import("../database/record/index.js").default | import("../frontend-models/base.js").FrontendModelClass; /** * - Scope arguments. */ scopeArgs: Array>; }; /** * Runs the defineModelScope helper. * @param {object} args - Definition arguments. * @param {(...args: Array>) => ReturnType} args.callback - Scope callback. * @param {typeof import("../database/record/index.js").default | import("../frontend-models/base.js").FrontendModelClass} args.modelClass - Owning model class. * @param {(modelClass?: typeof import("../database/record/index.js").default | import("../frontend-models/base.js").FrontendModelClass) => ReturnType} args.startQuery - Factory that returns a fresh query for the invoked model class. * @returns {((...args: Array>) => ReturnType) & {scope: (...args: Array>) => ModelScopeDescriptor}} - Scope helper. */ export declare function defineModelScope({ callback, modelClass, startQuery }: { callback: (...args: Array>) => ReturnType; modelClass: typeof import("../database/record/index.js").default | import("../frontend-models/base.js").FrontendModelClass; startQuery: (modelClass?: typeof import("../database/record/index.js").default | import("../frontend-models/base.js").FrontendModelClass) => ReturnType; }): ((...args: Array>) => ReturnType) & { scope: (...args: Array>) => ModelScopeDescriptor; }; /** * Runs the isModelScopeDescriptor helper. * @param {ReturnType} value - Candidate descriptor. * @returns {value is ModelScopeDescriptor} - Whether the value is a scope descriptor. */ export declare function isModelScopeDescriptor(value: ReturnType): value is ModelScopeDescriptor; //# sourceMappingURL=model-scope.d.ts.map