import { EntityRelation, ResourceObject, ResourceObjectRelationships } from '../../../utils/nestjs-shared';
import { ORM_SERVICE_PROPS } from '../../../constants';
import { MethodName } from '../types';
import { ObjectLiteral } from '../../../types';
import { PatchData, PatchRelationshipData, PostData, PostRelationshipData, Query, QueryOne } from '../zod';
import { OrmService } from '../types';
type RequestMethodeObject<E extends ObjectLiteral> = {
    [K in MethodName]: OrmService<E>[K];
};
export declare class JsonBaseController<E extends ObjectLiteral> implements RequestMethodeObject<E> {
    private [ORM_SERVICE_PROPS];
    getOne(id: string | number, query: QueryOne<E>): Promise<ResourceObject<E>>;
    getAll(query: Query<E>): Promise<ResourceObject<E, 'array'>>;
    deleteOne(id: string | number): Promise<void>;
    patchOne(id: string | number, inputData: PatchData<E>): Promise<ResourceObject<E>>;
    postOne(inputData: PostData<E>): Promise<ResourceObject<E>>;
    getRelationship<Rel extends EntityRelation<E>>(id: string | number, relName: Rel): Promise<ResourceObjectRelationships<E, Rel>>;
    postRelationship<Rel extends EntityRelation<E>>(id: string | number, relName: Rel, input: PostRelationshipData): Promise<ResourceObjectRelationships<E, Rel>>;
    deleteRelationship<Rel extends EntityRelation<E>>(id: string | number, relName: Rel, input: PostRelationshipData): Promise<void>;
    patchRelationship<Rel extends EntityRelation<E>>(id: string | number, relName: Rel, input: PatchRelationshipData): Promise<ResourceObjectRelationships<E, Rel>>;
}
export {};
