export declare type JsonapiResponse = JsonapiCollection | JsonapiDocument | JsonapiErrors;
export declare type JsonapiSuccess = JsonapiCollection | JsonapiDocument;
export declare type JsonapiRequest = JsonapiResourceRequest;
export interface JsonapiBase {
    included?: JsonapiResource[];
    meta?: Record<string, any>;
}
export interface JsonapiCollection extends JsonapiBase {
    data: JsonapiResource[];
    errors?: undefined;
}
export interface JsonapiDocument extends JsonapiBase {
    data: JsonapiResource;
    errors?: undefined;
}
export interface JsonapiResourceRequest extends JsonapiBase {
    data: JsonapiResource;
}
export interface JsonapiErrors extends JsonapiBase {
    data: undefined;
    errors: JsonapiError[];
}
export interface JsonapiResourceIdentifier {
    type: string;
    id?: string;
    temp_id?: string;
    'temp-id'?: string;
    method?: JsonapiResourceMethod;
}
export declare type JsonapiResourceMethod = 'create' | 'update' | 'destroy' | 'disassociate';
export interface JsonapiResource extends JsonapiResourceIdentifier {
    attributes?: Record<string, any>;
    relationships?: Record<string, any>;
    meta?: Record<string, any>;
    links?: Record<string, any>;
}
export interface JsonapiError {
    id?: string;
    status?: string;
    code?: string;
    title?: string;
    detail?: string;
    source?: JsonapiErrorSource;
    meta: JsonapiErrorMeta;
}
export interface JsonapiErrorSource {
    pointer?: string;
    parameter?: string;
}
export declare type JsonapiErrorMeta = Record<string, any>;
