import { Address } from 'viem';
export declare class NitroliteError extends Error {
    readonly code: string;
    readonly statusCode: number;
    readonly suggestion: string;
    readonly details?: Record<string, any>;
    readonly cause?: Error;
    constructor(message: string, code: string, statusCode: number, suggestion: string, details?: Record<string, any>, cause?: Error);
    toJSON(): Record<string, any>;
    toString(): string;
}
export declare class ValidationError extends NitroliteError {
    constructor(message: string, code?: string, statusCode?: number, suggestion?: string, details?: Record<string, any>, cause?: Error);
}
export declare class AuthenticationError extends NitroliteError {
    constructor(message: string, code?: string, statusCode?: number, suggestion?: string, details?: Record<string, any>, cause?: Error);
}
export declare class ContractError extends NitroliteError {
    constructor(message: string, code?: string, statusCode?: number, suggestion?: string, details?: Record<string, any>, cause?: Error);
}
export declare class StateError extends NitroliteError {
    constructor(message: string, code?: string, statusCode?: number, suggestion?: string, details?: Record<string, any>, cause?: Error);
}
export declare class InvalidParameterError extends ValidationError {
    constructor(message: string, details?: Record<string, any>, cause?: Error);
}
export declare class MissingParameterError extends ValidationError {
    constructor(parameter: string, details?: Record<string, any>, cause?: Error);
}
export declare class InvalidSignatureError extends AuthenticationError {
    constructor(message?: string, details?: Record<string, any>, cause?: Error);
}
export declare class UnauthorizedError extends AuthenticationError {
    constructor(message?: string, details?: Record<string, any>, cause?: Error);
}
export declare class NotParticipantError extends UnauthorizedError {
    constructor(address?: string, channelId?: string, details?: Record<string, any>, cause?: Error);
}
export declare class WalletClientRequiredError extends AuthenticationError {
    constructor(details?: Record<string, any>, cause?: Error);
}
export declare class AccountRequiredError extends AuthenticationError {
    constructor(details?: Record<string, any>, cause?: Error);
}
export declare class ContractNotFoundError extends ContractError {
    constructor(contractType?: string, address?: Address, details?: Record<string, any>, cause?: Error);
}
export declare class ContractReadError extends ContractError {
    constructor(functionName: string, cause: Error, details?: Record<string, any>);
}
export declare class ContractCallError extends ContractError {
    constructor(functionName: string, cause: Error, details?: Record<string, any>);
}
export declare class TransactionError extends ContractError {
    constructor(operationName: string, cause: Error, details?: Record<string, any>);
}
export declare class TokenError extends ContractError {
    constructor(message?: string, code?: string, statusCode?: number, suggestion?: string, details?: Record<string, any>, cause?: Error);
}
export declare class InsufficientBalanceError extends TokenError {
    constructor(tokenAddress?: Address, required?: bigint, actual?: bigint, details?: Record<string, any>, cause?: Error);
}
export declare class InsufficientAllowanceError extends TokenError {
    constructor(tokenAddress?: Address, spender?: Address, required?: bigint, actual?: bigint, details?: Record<string, any>, cause?: Error);
}
export declare class InvalidStateTransitionError extends StateError {
    constructor(message?: string, details?: Record<string, any>, cause?: Error);
}
export declare class StateNotFoundError extends StateError {
    constructor(entity?: string, id?: string, details?: Record<string, any>, cause?: Error);
}
export declare class ChannelNotFoundError extends StateNotFoundError {
    constructor(channelId?: string, details?: Record<string, any>, cause?: Error);
}
export declare const Errors: {
    NitroliteError: typeof NitroliteError;
    ValidationError: typeof ValidationError;
    AuthenticationError: typeof AuthenticationError;
    ContractError: typeof ContractError;
    StateError: typeof StateError;
    InvalidParameterError: typeof InvalidParameterError;
    MissingParameterError: typeof MissingParameterError;
    InvalidSignatureError: typeof InvalidSignatureError;
    UnauthorizedError: typeof UnauthorizedError;
    NotParticipantError: typeof NotParticipantError;
    WalletClientRequiredError: typeof WalletClientRequiredError;
    AccountRequiredError: typeof AccountRequiredError;
    ContractNotFoundError: typeof ContractNotFoundError;
    ContractReadError: typeof ContractReadError;
    ContractCallError: typeof ContractCallError;
    TransactionError: typeof TransactionError;
    TokenError: typeof TokenError;
    InsufficientBalanceError: typeof InsufficientBalanceError;
    InsufficientAllowanceError: typeof InsufficientAllowanceError;
    InvalidStateTransitionError: typeof InvalidStateTransitionError;
    StateNotFoundError: typeof StateNotFoundError;
    ChannelNotFoundError: typeof ChannelNotFoundError;
};
export default Errors;
