import { type CommonGraphRequestParams, Endpoint } from '@broxus/js-core';
export interface BridgeTransfersGraphVolumeResponse {
    ethTonVolume: string;
    timestamp: number;
    tonEthVolume: string;
}
export interface BridgeMainPageResponse {
    fromEverscaleUsdt: string;
    toEverscaleUsdt: string;
    volume24hUsdt: string;
    volume24hUsdtChange: string;
    volume7dUsdt: string;
    volume7dUsdtChange: string;
}
export declare enum BridgeTransferKind {
    EthToEth = "EthToEth",
    EthToTon = "EthToTon",
    TonToEth = "TonToEth",
    TonToTon = "TonToTon",
    CreditEthToTon = "CreditEthToTon"
}
export declare enum BridgeTransferStatus {
    Pending = "Pending",
    Confirmed = "Confirmed",
    Rejected = "Rejected"
}
export declare enum BridgeTokenType {
    Alien = "Alien",
    Native = "Native"
}
export declare enum BridgeTransfersOrdering {
    CreatedAtAscending = "CreatedAtAscending",
    CreatedAtDescending = "CreatedAtDescending",
    EthTonVolumeExecAscending = "EthTonVolumeExecAscending",
    EthTonVolumeExecDescending = "EthTonVolumeExecDescending",
    TonEthVolumeExecAscending = "TonEthVolumeExecAscending",
    TonEthVolumeExecDescending = "TonEthVolumeExecDescending",
    UpdateAtAscending = "UpdateAtAscending",
    UpdateAtDescending = "UpdateAtDescending"
}
export type BridgeTransfersOrderingParam = Lowercase<keyof typeof BridgeTransfersOrdering>;
export type BridgeTransfersStatusParam = Lowercase<keyof typeof BridgeTransferStatus>;
export type BridgeTransferKindParam = Lowercase<keyof typeof BridgeTransferKind>;
export interface BridgeTransfersRequestParams {
    createdAtGe?: number | null;
    createdAtLe?: number | null;
    ethTokenAddress?: string | null;
    ethTonChainId?: number;
    ethTonTransactionHashEth?: string | null;
    limit: number;
    nonce?: number | null;
    offset: number;
    ordering?: BridgeTransfersOrderingParam | null;
    status?: BridgeTransfersStatusParam | null;
    tonEthChainId?: number | null;
    tonTokenAddress?: string | null;
    transferKinds?: BridgeTransferKindParam[] | null;
    tonEthContractAddress?: string | null;
    updateAtGe?: number | null;
    updateAtLe?: number | null;
    userAddress?: string | null;
    volumeExecGe?: string | null;
    volumeExecLe?: string | null;
}
export interface BridgeTransferResponse {
    createdAt: number;
    ethTonChainId: number | null;
    ethTonContractAddress: string | null;
    ethTonEthTokenAddress: string | null;
    ethTonEthUserAddress: string | null;
    ethTonProxyAddress: string | null;
    ethTonRequiredVotes: number | null;
    ethTonStatus: BridgeTransferStatus | null;
    ethTonTokenType: BridgeTokenType | null;
    ethTonTonTokenAddress: string | null;
    ethTonTransactionHashEth: string | null;
    ethTonVolumeExec: string | null;
    ethTonVolumeUsdtExec: string | null;
    ethVaultAddress: string | null;
    tonEthChainId: number | null;
    tonEthContractAddress: string | null;
    tonEthEthTokenAddress: string | null;
    tonEthEthUserAddress: string | null;
    tonEthProxyAddress: string | null;
    tonEthRequiredVotes: number | null;
    tonEthStatus: BridgeTransferStatus | null;
    tonEthTokenType: BridgeTokenType | null;
    tonEthTonTokenAddress: string | null;
    tonEthVolumeExec: string | null;
    tonEthVolumeUsdtExec: string | null;
    tonUserAddress: string | null;
    transferKind: BridgeTransferKind | null;
    transferStatus: BridgeTransferStatus | null;
    updatedAt: number | null;
}
export interface BridgeTransfersResponse {
    totalCount: number;
    transfers: BridgeTransferResponse[];
}
export interface BridgeSearchCreditTransfersRequestParams {
    withdrawalId: string;
}
export interface BridgeSearchCreditTransfersResponse {
    contractAddress: string;
    transactionHash: string;
}
export declare enum BridgeNotInstantTransfersOrdering {
    BountyAscending = "BountyAscending",
    BountyDescending = "BountyDescending",
    CreatedAtAscending = "CreatedAtAscending",
    CreatedAtDescending = "CreatedAtDescending",
    VolumeExecAscending = "VolumeExecAscending",
    VolumeExecDescending = "VolumeExecDescending"
}
export declare enum BridgeNotInstantTransferStatus {
    Close = "Close",
    Open = "Open"
}
export type BridgeNotInstantTransfersOrderingParam = Lowercase<keyof typeof BridgeNotInstantTransfersOrdering>;
export interface BridgeNotInstantTransfersRequestParams {
    bountyGe?: string | null;
    bountyLe?: string | null;
    chainId?: number | null;
    contractAddress?: string | null;
    createdAtGe?: number | null;
    createdAtLe?: number | null;
    ethTokenAddress?: string | null;
    evmWhiteListTokens?: string[] | null;
    limit: number;
    offset: number;
    ordering?: BridgeNotInstantTransfersOrderingParam | null;
    status?: BridgeNotInstantTransferStatus | null;
    tonTokenAddress?: string | null;
    tvmWhiteListTokens?: string[] | null;
    userAddress?: string | null;
    volumeExecGe?: string | null;
    volumeExecLe?: string | null;
}
export interface BridgeNotInstantTransferResponse {
    bounty: string | null;
    chainId: number | null;
    closeTransactionHashEth: string | null;
    contractAddress: string | null;
    currentAmount: string | null;
    decimals: number | null;
    ethTokenAddress: string | null;
    ethUserAddress: string | null;
    openTransactionHashEth: string | null;
    payloadId: string | null;
    status: BridgeNotInstantTransferStatus | null;
    symbol: string | null;
    timestamp: number | null;
    tonTokenAddress: string | null;
    tonUserAddress: string | null;
    userId: string | null;
    volumeExec: string | null;
    volumeUsdtExec: string | null;
}
export interface BridgeNotInstantTransfersResponse {
    totalCount: number;
    transfers: BridgeNotInstantTransferResponse[];
}
export declare function useBridgeTransfersApi(baseUrl?: string): {
    graphVolume: Endpoint<never, CommonGraphRequestParams, BridgeTransfersGraphVolumeResponse[]>;
    mainPage: Endpoint<never, never, BridgeMainPageResponse>;
    search: Endpoint<never, BridgeTransfersRequestParams, BridgeTransfersResponse>;
    searchCreditTransfers: Endpoint<never, BridgeSearchCreditTransfersRequestParams, BridgeSearchCreditTransfersResponse>;
    searchNotInstant: Endpoint<never, BridgeNotInstantTransfersRequestParams, BridgeNotInstantTransfersResponse>;
};
