import { DataSource, EntityManager, EntityTarget, FindManyOptions, FindOneOptions, FindOptionsWhere } from 'typeorm';
import { Trait } from '../interface';
export declare class ATSService {
    dataSource: DataSource;
    private uuid;
    manager: EntityManager;
    init(): Promise<void>;
    addAtom(): Promise<string>;
    delAtom(id: string): Promise<void>;
    createTrait<Entity extends Trait>(trait: EntityTarget<Entity>, id: string): Promise<Entity>;
    saveTrait<Entity extends Trait>(trait: Entity): Promise<void>;
    delTrait<Entity extends Trait>(trait: EntityTarget<Entity>, id: string): any;
    delTrait<Entity extends Trait>(trait: EntityTarget<Entity>, ids: string[]): any;
    getTrait<Entity extends Trait>(trait: EntityTarget<Entity>, id: string): Promise<Entity>;
    getTrait<Entity extends Trait>(trait: EntityTarget<Entity>, options: FindOneOptions<Entity>): Promise<Entity>;
    getTraits<Entity extends Trait>(trait: EntityTarget<Entity>): Promise<Entity[]>;
    getTraits<Entity extends Trait>(trait: EntityTarget<Entity>, ids: string[]): Promise<Entity[]>;
    getTraits<Entity extends Trait>(trait: EntityTarget<Entity>, options: FindManyOptions<Entity>): Promise<Entity[]>;
    getRepository<Entity>(trait: EntityTarget<Entity>): import("typeorm").Repository<Entity>;
    getManager(): EntityManager;
    /**
     *
     * @param traits 按顺序过滤，传参数时请按照从最细到最宽的顺序传递
     * @returns
     */
    getAtoms<Entity extends Trait>(traits: EntityTarget<Entity>[], options?: FindOptionsWhere<Entity>[]): Promise<string[]>;
}
