import type { Role } from './roles';
export declare class TestError extends Error {
    readonly role: Role | undefined;
    readonly context: Record<string, unknown> | undefined;
    constructor(message: string, role?: Role, context?: Record<string, unknown>);
    format(): string;
}
export declare class DataError extends TestError {
    readonly operation: string;
    readonly dataKey?: string;
    readonly dataValue?: unknown;
    constructor(message: string, operation: string, role?: Role, dataKey?: string, dataValue?: unknown, context?: Record<string, unknown>);
    format(): string;
}
export declare class AuthenticationError extends TestError {
    readonly authType: string;
    readonly credentials?: Record<string, string>;
    constructor(message: string, authType: string, role?: Role, credentials?: Record<string, string>, context?: Record<string, unknown>);
    format(): string;
}
export declare class ErrorFactory {
    static data(operation: string, message: string, role?: Role, dataKey?: string, dataValue?: unknown, context?: Record<string, unknown>): DataError;
    static authentication(authType: string, message: string, role?: Role, credentials?: Record<string, string>, context?: Record<string, unknown>): AuthenticationError;
}
