import { HttpStatusCode } from "./http-status.js";
export interface ProblemDetails {
    [key: string]: unknown;
    /**
     * A URI reference that identifies the problem type.
     * @example https://zup.fail/can-not-view-account-details
     */
    type: string;
    /**
     * A short, human-readable summary of the problem type.
     * It SHOULD NOT change from occurrence to occurrence of the problem.
     * @example Not authorized to view account details
     */
    title: string;
    /**
     * The HTTP status code generated by the origin server for this occurrence
     * of the problem
     * @example 401
     */
    status: HttpStatusCode;
    /**
     * A human-readable explanation specific to this occurrence of the problem.
     * @example Due to privacy concerns you are not allowed to view account
     * details of others. Only users with the role administrator are allowed
     * to do this.
     */
    detail?: string;
    /**
     * A URI reference that identifies the specific occurrence of the problem.
     * It may or may not yield further information if dereferenced.
     * @example /account/123456/details
     */
    instance?: string;
    /**
     * Trace Information to assist in finding the logs
     */
    trace?: {
        timestamp: string;
        requestId: string | null;
    };
    /**
     * Any additional error data such as validation messages
     */
    errors?: any;
}
export interface ProblemDetailsFactory<T> {
    (options: T): ProblemDetails;
}
//# sourceMappingURL=interfaces.d.ts.map