import { ChainId, TokenId } from '../xlinkSdkUtils/types.mjs';
import './BigNumber.mjs';
import 'big.js';
import './typeHelpers.mjs';

/** Extends the Error class and serves as the base for all custom errors within the SDK. */
declare class XLinkSDKErrorBase extends Error {
    constructor(...args: ConstructorParameters<typeof Error>);
}
declare class BridgeValidateFailedError extends XLinkSDKErrorBase {
    cause: Error;
    constructor(cause: Error);
}
declare class StacksAddressVersionNotSupportedError extends XLinkSDKErrorBase {
    address: string;
    versionName: string;
    constructor(address: string, versionName: string);
}
declare class TooFrequentlyError extends XLinkSDKErrorBase {
    methodPath: string[];
    retryAfter?: number | undefined;
    constructor(methodPath: string[], retryAfter?: number | undefined, options?: ErrorConstructorOptions);
}
/** It is thrown when a method in the SDK receives invalid parameters. */
declare class InvalidMethodParametersError extends XLinkSDKErrorBase {
    methodPath: string[];
    params: {
        name: string;
        expected: string;
        received: string;
    }[];
    constructor(methodPath: string[], params: {
        name: string;
        expected: string;
        received: string;
    }[]);
}
/** It is thrown when an attempt is made to bridge tokens between unsupported chains in the SDK. */
declare class UnsupportedBridgeRouteError extends XLinkSDKErrorBase {
    fromChain: ChainId;
    toChain: ChainId;
    fromToken: TokenId;
    toToken?: TokenId | undefined;
    constructor(fromChain: ChainId, toChain: ChainId, fromToken: TokenId, toToken?: TokenId | undefined);
}
/** It is thrown when a method in the SDK receives an unknown chain. */
declare class UnsupportedChainError extends XLinkSDKErrorBase {
    chain: ChainId;
    constructor(chain: ChainId);
}
/** It is thrown when a smart contract is assigned an unknown or unsupported chain ID. */
declare class UnsupportedContractAssignedChainIdError extends XLinkSDKErrorBase {
    chainId: bigint;
    constructor(chainId: bigint);
}

export { BridgeValidateFailedError, InvalidMethodParametersError, StacksAddressVersionNotSupportedError, TooFrequentlyError, UnsupportedBridgeRouteError, UnsupportedChainError, UnsupportedContractAssignedChainIdError, XLinkSDKErrorBase };
