import { type ErrorOwnership } from './error-ownership.js';
type SoloErrorInit = {
    message: string;
    code?: string;
    troubleshootingSteps?: string;
};
export declare class SoloError extends Error {
    cause: Error | any;
    meta: any;
    readonly statusCode?: number;
    protected readonly code?: string;
    protected readonly troubleshootingSteps?: ReadonlyArray<string>;
    protected readonly retryable?: boolean;
    protected readonly ownership?: ErrorOwnership;
    protected static readonly DOC_BASE: string;
    /**
     * Create a custom error object
     *
     * @param messageOrInit error message string, or an init object with localeKey, code, and optional context
     * @param cause source error (if any)
     * @param meta additional metadata (if any)
     */
    constructor(messageOrInit: string | SoloErrorInit, cause?: Error | any, meta?: any);
    /** Returns the troubleshooting steps for this error, or undefined if none are defined. */
    getTroubleshootingSteps(): ReadonlyArray<string> | undefined;
    /** Returns the documentation URL for this error, or undefined if not defined. */
    getDocumentUrl(): string | undefined;
    /** Returns the formatted error code label (e.g. "SOLO-1001"), or undefined if not defined. */
    getFormattedCode(): string | undefined;
}
export {};
