import { Constructor } from '@tdm/core/tdm'; import { AdapterStatic, ActionOptions, IdentityValueType } from '../fw'; export interface TargetDAO { findById(id: IdentityValueType, options?: Options): Promise; find(options: Options): Promise; findOne(options: Options): Promise; query(options?: Options): Promise; findAll(options?: Options): Promise; create(instance: T, options?: Options): Promise; create(obj: Partial, options?: Options): Promise; update(instance: T, options?: Options): Promise; update(obj: Partial, options?: Options): Promise; replace(instance: T, options?: Options): Promise; replace(obj: Partial, options?: Options): Promise; remove(instance: T, options?: Options): Promise; remove(id: IdentityValueType, options?: Options): Promise; } export interface AdapterDAO { findById(id: IdentityValueType, options?: Options): Promise; find(options: Options): Promise; findOne(options: Options): Promise; query(options?: Options): Promise; findAll(options?: Options): Promise; create(instance: T, options?: Options): Promise; create(obj: Partial, options?: Options): Promise; update(instance: T, options?: Options): Promise; update(obj: Partial, options?: Options): Promise; replace(instance: T, options?: Options): Promise; replace(obj: Partial, options?: Options): Promise; remove(instance: T, options?: Options): Promise; remove(id: IdentityValueType, options?: Options): Promise; } export declare class DAO { findById(target: Constructor, id: IdentityValueType, options?: ActionOptions): Promise; find(target: Constructor, options: ActionOptions): Promise; findOne(target: Constructor, options: ActionOptions): Promise; query(target: Constructor, options?: ActionOptions): Promise; findAll(target: Constructor, options?: ActionOptions): Promise; create(instance: T, options?: ActionOptions): Promise; create(target: Constructor, obj: Partial, options?: ActionOptions): Promise; update(instance: T, options?: ActionOptions): Promise; update(target: Constructor, obj: Partial, options?: ActionOptions): Promise; replace(instance: T, options?: ActionOptions): Promise; replace(target: Constructor, obj: Partial, options?: ActionOptions): Promise; remove(instance: T, options?: ActionOptions): Promise; remove(target: Constructor, id: IdentityValueType, options?: ActionOptions): Promise; /** * Clear the whole table representing a resource. */ clear(target: Constructor): Promise; private runTargetOrInstance(target, cmd, ...args); private run(target, cmd, ...args); /** * Returns the DAO of an adapter, attached to a target. * @param adapterClass * @param target * @param factoryArgs * @returns */ static of(adapterClass: AdapterStatic, target: Z & Constructor, factoryArgs?: any): TargetDAO; }