import { Chains } from '../types/chain';
export type InitialDryStateError = {
    code: 'SOURCE_TOKEN_IS_EMPTY';
} | {
    code: 'TARGET_TOKEN_IS_EMPTY';
} | {
    code: 'SOURCE_TOKEN_AMOUNT_IS_EMPTY';
} | {
    code: 'SOURCE_BALANCE_INSUFFICIENT';
};
export type InitialInternalStateError = InitialDryStateError | {
    code: 'TARGET_TOKEN_NOT_INTENT';
} | {
    code: 'INVALID_SOURCE_BALANCE';
};
type SendAddressValidationError = {
    code: 'SEND_ADDRESS_IS_NOT_VERIFIED';
    meta: {
        address: string;
        chain: Chains;
    };
} | {
    code: 'SEND_ADDRESS_IS_NOT_FOUND';
    meta: {
        address: string;
        chain: Chains;
    };
};
export type InitialExternalStateError = InitialDryStateError | SendAddressValidationError | {
    code: 'SOURCE_TOKEN_IS_INTENT';
} | {
    code: 'INVALID_SOURCE_BALANCE';
} | {
    code: 'SEND_ADDRESS_IS_EMPTY';
} | {
    code: 'SEND_ADDRESS_IS_INVALID';
    meta: {
        address: string;
        chain: Chains;
    };
};
export type InputValidDryError = {
    code: 'NO_NEAR_TOKEN_FOUND';
    meta: {
        symbol: string;
    };
} | {
    code: 'TOKEN_IS_NOT_SUPPORTED';
} | {
    code: 'QUOTE_FAILED';
    meta: {
        message: string;
    };
} | {
    code: 'QUOTE_INVALID';
    meta: {
        isDry: boolean;
    };
} | {
    code: 'QUOTE_INVALID_INITIAL';
    meta: {
        isDry: boolean;
        message: string;
    };
} | {
    code: 'QUOTE_AMOUNT_IS_TOO_LOW';
    meta: {
        minAmount?: string;
    };
};
export type InputValidWalletError = InputValidDryError | {
    code: 'QUOTE_NO_ONE_TIME_ADDRESS';
} | {
    code: 'QUOTE_WIDGET_API_KEY_IS_INVALID';
};
export type QuoteSuccessDirectTransferError = {
    code: 'MIN_WITHDRAWAL_AMOUNT_ERROR';
    meta: {
        minAmount?: string;
    };
} | {
    code: 'DIRECT_TRANSFER_ERROR';
    meta?: {
        message?: string;
    };
} | {
    code: 'BRIDGE_SDK_FAILED';
} | {
    code: 'FEES_NOT_ESTIMATED';
};
export type QuoteSuccessTransferError = {
    code: 'NO_QUOTE_FOUND';
} | {
    code: 'NO_DEPOSIT_RESULT';
} | {
    code: 'QUOTE_ERROR';
    meta: {
        message: string;
    };
} | {
    code: 'TRANSFER_INVALID_INITIAL';
    meta: {
        message: string;
    };
} | {
    code: 'EXTERNAL_TRANSFER_FAILED';
} | {
    code: 'EXTERNAL_TRANSFER_REFUNDED';
} | {
    code: 'EXTERNAL_TRANSFER_INCOMPLETE';
};
export type QuoteSuccessError = QuoteSuccessDirectTransferError | QuoteSuccessTransferError;
export type ErrorType = InitialDryStateError | InitialInternalStateError | InitialExternalStateError | InputValidDryError | InputValidWalletError | QuoteSuccessError;
export declare const QUOTE_ERRORS: Array<InputValidDryError['code'] | InputValidWalletError['code']>;
export declare const TRANSFER_ERRORS: Array<QuoteSuccessDirectTransferError['code'] | QuoteSuccessTransferError['code']>;
export declare const SEND_ADDRESS_VALIDATION_ERRORS: Array<SendAddressValidationError['code']>;
export declare const isQuoteError: (error: ErrorType) => error is InputValidDryError | InputValidWalletError;
export declare const isTransferError: (error: ErrorType) => error is QuoteSuccessError;
export declare const isAsyncSendAddressValidationError: (error: ErrorType) => error is SendAddressValidationError;
export {};
