import { BaseRepository } from "./BaseRepository";
import { Constructor, Model } from "@decaf-ts/decorator-validation";
import { Context } from "./Context";
import { RepositoryFlags } from "./types";
export declare abstract class Repository<M extends Model, F extends RepositoryFlags = RepositoryFlags, C extends Context<F> = Context<F>> extends BaseRepository<M, F, C> {
    protected constructor(clazz?: Constructor<M>);
    protected createPrefix(model: M, ...args: any[]): Promise<[M, ...any[]]>;
    protected createAllPrefix(models: M[], ...args: any[]): Promise<any[]>;
    protected updatePrefix(model: M, ...args: any[]): Promise<[M, ...args: any[]]>;
    protected updateAllPrefix(models: M[], ...args: any[]): Promise<any[]>;
    static key(key: string): string;
}
