import { Attributes, DataResult, EntityRelation, Include, Relationships, ResourceData, ResourceObject } from '../../../utils/nestjs-shared';
import { ObjectLiteral } from '../../../types';
import { ZodEntityProps } from '../types';
import { Query, QueryOne } from '../zod';
export declare class JsonApiTransformerService<E extends ObjectLiteral> {
    private applicationConfig;
    private entityMapProps;
    private currentEntity;
    private _urlPath;
    private _currentMapProps;
    get currentMapProps(): ZodEntityProps<E>;
    get urlPath(): string[];
    transformData(data: E, query: QueryOne<E>): Pick<ResourceObject<E>, 'data' | 'included'>;
    transformData(data: E[], query: Query<E>): Pick<ResourceObject<E, 'array'>, 'data' | 'included'>;
    transformItem<T extends ObjectLiteral = E>(item: T, mapProps: ZodEntityProps<T>, query: Query<T>): ResourceData<T>;
    transformRel<Rel extends EntityRelation<E>>(item: E, rel: Rel): DataResult<E[Rel], Rel>;
    transformRelationships<T extends ObjectLiteral = E>(item: T, mapProps: ZodEntityProps<T>, query: Query<T>): Relationships<T>;
    extractAttributes<T extends ObjectLiteral = E>(item: T, fields: (keyof T)[]): Attributes<T>;
    extractIncluded<T extends ObjectLiteral = E>(data: T[], query: Query<E>): Include<T>[];
    private getLink;
}
