/**
 * Defines custom error classes for the application, providing more
 * specific error information than the generic Error class.
 */
/**
 * Base error class for all application-specific errors.
 */
export declare class AppError extends Error {
    readonly code: string;
    readonly statusCode: number;
    readonly details?: Record<string, unknown> | undefined;
    constructor(message: string, code: string, statusCode?: number, details?: Record<string, unknown> | undefined);
    /**
     * Convert error to a user-friendly message
     */
    toUserMessage(): string;
    /**
     * Convert error to structured log format
     */
    toLogFormat(): Record<string, unknown>;
}
/**
 * Thrown when a required file is not found.
 */
export declare class FileNotFoundError extends AppError {
    constructor(filePath: string);
    toUserMessage(): string;
}
/**
 * Thrown when a YAML file cannot be parsed.
 */
export declare class YamlParseError extends AppError {
    constructor(filePath: string, originalError: Error);
    toUserMessage(): string;
}
/**
 * Thrown when a context file or its components are invalid.
 */
export declare class InvalidContextError extends AppError {
    constructor(message: string, details?: Record<string, unknown>);
    toUserMessage(): string;
}
/**
 * Thrown when the assets directory cannot be found.
 */
export declare class AssetsNotFoundError extends AppError {
    constructor();
    toUserMessage(): string;
}
/**
 * Thrown when an invalid project root is provided.
 */
export declare class InvalidProjectRootError extends AppError {
    constructor(projectRoot: string);
    toUserMessage(): string;
}
/**
 * Handle error and return user-friendly message
 */
export declare function handleError(error: unknown): {
    message: string;
    code: string;
    statusCode: number;
    details?: Record<string, unknown>;
};
/**
 * Log error in structured format
 */
export declare function logError(error: unknown, context?: Record<string, unknown>): void;
/**
 * Check if error is recoverable
 */
export declare function isRecoverable(error: unknown): boolean;
