import { InsightClient } from "./client";
import { BucketPut } from "./types";
export declare class InsightRepository<T extends {
    id: string;
    name: string;
} | BucketPut> {
    client: InsightClient;
    objPath: string;
    updateMethod: 'PUT' | 'PATCH';
    constructor(client: InsightClient, objPath: string, updateMethod: 'PUT' | 'PATCH');
    within(id: string): InsightClient;
    getByID(id: string, params?: object): Promise<T>;
    findAll(): Promise<T[]>;
    find(queryParams?: object): AsyncGenerator<T, undefined, undefined>;
    findOne(params?: object): Promise<T | undefined>;
    create(obj: any): Promise<T>;
    findOrCreate(obj: Required<{
        name: string;
    }>): Promise<T>;
    update(obj: Partial<T>): Promise<T>;
    delete(id: string): Promise<T>;
    add(id: string): Promise<T>;
    remove(id: string): Promise<T>;
}
//# sourceMappingURL=repository.d.ts.map