import { FindByIdFilter, FluentQuery, QueryOutput } from './types';
export interface FluentConnectorInterface<ModelDTO, InputDTO, OutputDTO> {
    insert(data: InputDTO): Promise<OutputDTO>;
    insertMany(data: InputDTO[]): Promise<OutputDTO[]>;
    findById<T extends FindByIdFilter<ModelDTO>>(id: string, q?: T): Promise<QueryOutput<T, ModelDTO> | null>;
    findByIds<T extends FindByIdFilter<ModelDTO>>(ids: string[], q?: T): Promise<QueryOutput<T, ModelDTO>[]>;
    findMany<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO>[]>;
    findFirst<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO> | null>;
    requireById(id: string, q?: FindByIdFilter<ModelDTO>): Promise<QueryOutput<FindByIdFilter<ModelDTO>, ModelDTO>>;
    requireFirst<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO>>;
    updateById(id: string, data: InputDTO): Promise<OutputDTO>;
    replaceById(id: string, data: InputDTO): Promise<OutputDTO>;
    deleteById(id: string): Promise<string>;
    loadFirst(query?: FluentQuery<ModelDTO>): any;
    loadById(id: string): any;
    raw(): any;
}
