export declare function assertIsError(value: unknown): asserts value is Error;
export declare function assertErrorType<T extends Error>(value: unknown, ErrorType: new (...args: unknown[]) => T): asserts value is T;
export declare function expectErrorMessage(error: unknown, pattern: string | RegExp): void;
export declare function expectThrows<T extends Error = Error>(fn: () => void, ErrorType?: new (...args: unknown[]) => T, messagePattern?: string | RegExp): T;
export declare function expectThrowsAsync<T extends Error = Error>(fn: () => Promise<void>, ErrorType?: new (...args: unknown[]) => T, messagePattern?: string | RegExp): Promise<T>;
export declare function handleError<T>(error: unknown, handler: (error: Error) => T, fallback?: (value: unknown) => T): T;
export declare function hasErrorProperty<K extends string>(error: unknown, property: K): error is Error & Record<K, unknown>;
export declare function getErrorProperty<T = unknown>(error: unknown, property: string): T | undefined;
export declare function assertErrorHasProperty<K extends string>(error: unknown, property: K): asserts error is Error & Record<K, unknown>;
export interface ErrorExpectation<T extends Error = Error> {
    type?: new (...args: unknown[]) => T;
    message?: string | RegExp;
    code?: string;
    properties?: Record<string, unknown>;
}
export declare function expectThrowsMatching<T extends Error = Error>(fn: () => void, expectation: ErrorExpectation<T>): T;
export declare function expectThrowsMatchingAsync<T extends Error = Error>(fn: () => Promise<void>, expectation: ErrorExpectation<T>): Promise<T>;
//# sourceMappingURL=error-testing.d.ts.map