import { IResourceEntity, IResourceFactory, ITimestampRangeCriteria } from "../../../interfaces/api"; import { TFactoryConstructor } from "../../../types"; import { IRequestOptions, ObjectKey } from "../../../interfaces/common"; import { ITaskFactory, TaskCreateCriteria } from "../TaskFactory"; import { IGetCriteria } from "./hasGetByCriteria"; import { ITask } from "../../activeRecords/Task"; import { IResourcePagination } from "../../ResourcePagination"; import { IFactoryCriteriaItem } from "../common/FactoryCriteriaBuilder"; import { IFactoryConstructors } from "../index"; export interface IGetTasksCriteria extends IGetCriteria { filter?: { id?: number | number[]; updated_at?: number | ITimestampRangeCriteria; }; } export interface IFactoryTaskList { get(criteria?: IGetTasksCriteria, options?: IRequestOptions): Promise>; create(criteria: (TaskCreateCriteria | ITask)[], options?: IRequestOptions): Promise; } export interface IHasTasks>> extends IResourceFactory { tasks: ITaskFactory; } export declare type IHasTasksFactory>> = IResourceFactory & IHasTasks; export declare class HasTasksFactoryCriteriaItem implements IFactoryCriteriaItem { protected entityType: ObjectKey; constructor(entityType: ObjectKey); fetchCriteria(): { entity_type: keyof IFactoryConstructors; }; createCriteria(): { entity_type: keyof IFactoryConstructors; }; updateCriteria(): { entity_type: keyof IFactoryConstructors; }; } export declare function hasTasks>>(Base: TFactoryConstructor): TFactoryConstructor;