import { APIResponse } from '../types';
import { HTTPClient } from './http';
export interface MethodsConfig {
    isCreateEnabled: boolean;
    isReadEnabled: boolean;
    isUpdateEnabled: boolean;
    isDeleteEnabled: boolean;
    isFindEnabled: boolean;
}
export interface CRUDConfig {
    basePath: string;
    methods?: Partial<MethodsConfig>;
    id?: string;
}
export declare class CRUD<T, C = T, U = T, F = T[]> {
    protected readonly _httpClient: HTTPClient;
    protected readonly _config: CRUDConfig;
    constructor(_httpClient: HTTPClient, _config: CRUDConfig);
    get(id?: string): Promise<APIResponse<T>>;
    create(data: C): Promise<APIResponse<T>>;
    update(id: string, data: Partial<U>): Promise<APIResponse<T>>;
    delete(id?: string): Promise<APIResponse<void>>;
    find(query?: Record<string, unknown>): Promise<APIResponse<F>>;
    protected _getIdParam(id?: string): string | undefined;
}
//# sourceMappingURL=crud.d.ts.map