import { Repository, SelectQueryBuilder, WhereExpression } from 'typeorm';
export declare abstract class MainRepository<T> extends Repository<T> {
    getOne(resourceOptions?: object): Promise<T | undefined>;
    getOneById(id: number, resourceOptions?: object): Promise<T | undefined>;
    getManyAndCount(resourceOptions?: object): Promise<{
        total_data: number;
        rows: T[];
    }>;
    getMany(resourceOptions?: object): Promise<T[]>;
    applyResourceOptions(mainAlias: string, options: any, queryBuilder: SelectQueryBuilder<any>): SelectQueryBuilder<any> | undefined;
    generateAliasName(): string;
    applyFilter(filters: any, filtersByOr: any, queryBuilder: SelectQueryBuilder<any>, alias: string): void;
    buildFilters(queryBuilder: SelectQueryBuilder<any> | WhereExpression, filters: any, alias: string): void;
}
