import type { ProblemInterface, ProblemOptions, CopyProblemOptions, ToObjectProblemOptions, StringifyProblemOptions, Path, PathValue } from './types'; export declare class Problem = {}> extends Error { protected readonly problem: ProblemInterface & T; protected readonly options: ProblemOptions; static createType(type: string): string; constructor(problem: ProblemInterface & T, options?: ProblemOptions); get(): ProblemInterface & T; get

, PV = PathValue>(path: P): PV; set(problem: Partial): ProblemInterface & T; set(key: K, value: (ProblemInterface & T)[K]): (ProblemInterface & T)[K]; copy(options?: CopyProblemOptions>>): Problem; toObject({ includeStack, includeCause }?: ToObjectProblemOptions): ProblemInterface & T; stringify(options?: StringifyProblemOptions, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; stringify(options?: StringifyProblemOptions, replacer?: (number | string)[] | null, space?: string | number): string; isOfType(type: string): boolean; }