import { FindOneOptions, FindOptions, FindResult } from "../types";
export type BaseEntityClassType<Entity extends object> = {
    new (...args: any[]): Entity;
    get<CEntity extends Entity>(this: {
        new (): CEntity;
    } & Entity, id: string): Promise<FindResult<CEntity> | undefined>;
    set<CEntity extends Entity>(this: {
        new (): CEntity;
    } & Entity, id: string, value: Partial<CEntity>): Promise<FindResult<CEntity> | undefined>;
    generateId(partitionKey?: string): string;
    create<CEntity extends Entity>(this: {
        new (): CEntity;
    } & Entity, value: CEntity, id?: string): Promise<FindResult<CEntity>>;
    delete<CEntity extends Entity>(this: {
        new (): CEntity;
    } & Entity, id: string): Promise<number>;
    find<CEntity extends Entity>(this: {
        new (): CEntity;
    } & Entity, options: FindOptions<CEntity>): Promise<FindResult<CEntity>[]>;
    findOne<CEntity extends Entity>(this: {
        new (): CEntity;
    } & Entity, options: FindOneOptions<CEntity>): Promise<FindResult<CEntity> | undefined>;
};
export declare function getRepository<Entity extends object>(base: new (...args: any[]) => Entity): BaseEntityClassType<Entity>;
