import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import type { Address } from "./common_pb.js";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file gfxcafe/oku/account/v1/swaphistory.proto.
 */
export declare const file_gfxcafe_oku_account_v1_swaphistory: GenFile;
/**
 * SwapHistoryRequest for retrieving swap history
 *
 * @generated from message gfxcafe.oku.account.v1.SwapHistoryRequest
 */
export type SwapHistoryRequest = Message<"gfxcafe.oku.account.v1.SwapHistoryRequest"> & {
    /**
     * User address
     *
     * @generated from field: gfxcafe.oku.account.v1.Address address = 1;
     */
    address?: Address;
    /**
     * Optional chain ID filter (0 for all chains)
     *
     * @generated from field: int32 chain_id = 2;
     */
    chainId: number;
};
/**
 * Describes the message gfxcafe.oku.account.v1.SwapHistoryRequest.
 * Use `create(SwapHistoryRequestSchema)` to create a new message.
 */
export declare const SwapHistoryRequestSchema: GenMessage<SwapHistoryRequest>;
/**
 * SwapHistoryResponse with swap history data
 *
 * @generated from message gfxcafe.oku.account.v1.SwapHistoryResponse
 */
export type SwapHistoryResponse = Message<"gfxcafe.oku.account.v1.SwapHistoryResponse"> & {
    /**
     * Successful trades
     *
     * @generated from field: repeated gfxcafe.oku.account.v1.Trade successful_trades = 1;
     */
    successfulTrades: Trade[];
    /**
     * Withdrawals
     *
     * @generated from field: repeated gfxcafe.oku.account.v1.WithdrawalOrDeposit withdrawals = 2;
     */
    withdrawals: WithdrawalOrDeposit[];
    /**
     * Deposits
     *
     * @generated from field: repeated gfxcafe.oku.account.v1.WithdrawalOrDeposit deposits = 3;
     */
    deposits: WithdrawalOrDeposit[];
    /**
     * Failed trades
     *
     * @generated from field: repeated gfxcafe.oku.account.v1.Trade failed_trades = 4;
     */
    failedTrades: Trade[];
    /**
     * Cancelled trades
     *
     * @generated from field: repeated gfxcafe.oku.account.v1.Trade cancelled_trades = 5;
     */
    cancelledTrades: Trade[];
    /**
     * Successful bridges
     *
     * @generated from field: repeated gfxcafe.oku.account.v1.SuccessfulBridge successful_bridges = 6;
     */
    successfulBridges: SuccessfulBridge[];
};
/**
 * Describes the message gfxcafe.oku.account.v1.SwapHistoryResponse.
 * Use `create(SwapHistoryResponseSchema)` to create a new message.
 */
export declare const SwapHistoryResponseSchema: GenMessage<SwapHistoryResponse>;
/**
 * Chain information
 *
 * @generated from message gfxcafe.oku.account.v1.Chain
 */
export type Chain = Message<"gfxcafe.oku.account.v1.Chain"> & {
    /**
     * Chain ID
     *
     * @generated from field: int32 id = 1;
     */
    id: number;
    /**
     * Chain name
     *
     * @generated from field: string name = 2;
     */
    name: string;
};
/**
 * Describes the message gfxcafe.oku.account.v1.Chain.
 * Use `create(ChainSchema)` to create a new message.
 */
export declare const ChainSchema: GenMessage<Chain>;
/**
 * SwapToken information
 *
 * @generated from message gfxcafe.oku.account.v1.SwapToken
 */
export type SwapToken = Message<"gfxcafe.oku.account.v1.SwapToken"> & {
    /**
     * Chain info
     *
     * @generated from field: gfxcafe.oku.account.v1.Chain chain = 1;
     */
    chain?: Chain;
    /**
     * Token name
     *
     * @generated from field: string name = 2;
     */
    name: string;
    /**
     * Token address
     *
     * @generated from field: gfxcafe.oku.account.v1.Address address = 3;
     */
    address?: Address;
    /**
     * Token decimals
     *
     * @generated from field: int32 decimals = 4;
     */
    decimals: number;
};
/**
 * Describes the message gfxcafe.oku.account.v1.SwapToken.
 * Use `create(SwapTokenSchema)` to create a new message.
 */
export declare const SwapTokenSchema: GenMessage<SwapToken>;
/**
 * TokenWithValues includes token info with amounts and values
 *
 * @generated from message gfxcafe.oku.account.v1.TokenWithValues
 */
export type TokenWithValues = Message<"gfxcafe.oku.account.v1.TokenWithValues"> & {
    /**
     * Token info
     *
     * @generated from field: gfxcafe.oku.account.v1.SwapToken token = 1;
     */
    token?: SwapToken;
    /**
     * Amount
     *
     * @generated from field: double amount = 2;
     */
    amount: number;
    /**
     * Price
     *
     * @generated from field: double price = 3;
     */
    price: number;
    /**
     * Value
     *
     * @generated from field: double value = 4;
     */
    value: number;
};
/**
 * Describes the message gfxcafe.oku.account.v1.TokenWithValues.
 * Use `create(TokenWithValuesSchema)` to create a new message.
 */
export declare const TokenWithValuesSchema: GenMessage<TokenWithValues>;
/**
 * CoreData represents common fields for trades
 *
 * @generated from message gfxcafe.oku.account.v1.CoreData
 */
export type CoreData = Message<"gfxcafe.oku.account.v1.CoreData"> & {
    /**
     * Transaction type
     *
     * @generated from field: string type = 1;
     */
    type: string;
    /**
     * Transaction hash
     *
     * @generated from field: string hash = 2;
     */
    hash: string;
    /**
     * Sender address
     *
     * @generated from field: gfxcafe.oku.account.v1.Address sender = 3;
     */
    sender?: Address;
    /**
     * Router used
     *
     * @generated from field: string router = 4;
     */
    router: string;
    /**
     * When the transaction was mined
     *
     * @generated from field: google.protobuf.Timestamp mined_at = 5;
     */
    minedAt?: Timestamp;
};
/**
 * Describes the message gfxcafe.oku.account.v1.CoreData.
 * Use `create(CoreDataSchema)` to create a new message.
 */
export declare const CoreDataSchema: GenMessage<CoreData>;
/**
 * CoreTradeData includes quote ID
 *
 * @generated from message gfxcafe.oku.account.v1.CoreTradeData
 */
export type CoreTradeData = Message<"gfxcafe.oku.account.v1.CoreTradeData"> & {
    /**
     * Core data
     *
     * @generated from field: gfxcafe.oku.account.v1.CoreData core_data = 1;
     */
    coreData?: CoreData;
    /**
     * Quote ID
     *
     * @generated from field: string quote_id = 2;
     */
    quoteId: string;
};
/**
 * Describes the message gfxcafe.oku.account.v1.CoreTradeData.
 * Use `create(CoreTradeDataSchema)` to create a new message.
 */
export declare const CoreTradeDataSchema: GenMessage<CoreTradeData>;
/**
 * Trade represents a swap transaction
 *
 * @generated from message gfxcafe.oku.account.v1.Trade
 */
export type Trade = Message<"gfxcafe.oku.account.v1.Trade"> & {
    /**
     * Core trade data
     *
     * @generated from field: gfxcafe.oku.account.v1.CoreTradeData core_trade_data = 1;
     */
    coreTradeData?: CoreTradeData;
    /**
     * Input chain
     *
     * @generated from field: gfxcafe.oku.account.v1.Chain in_chain = 2;
     */
    inChain?: Chain;
    /**
     * Output chain
     *
     * @generated from field: gfxcafe.oku.account.v1.Chain out_chain = 3;
     */
    outChain?: Chain;
    /**
     * Input token with values
     *
     * @generated from field: gfxcafe.oku.account.v1.TokenWithValues in_token = 4;
     */
    inToken?: TokenWithValues;
    /**
     * Output token with values
     *
     * @generated from field: gfxcafe.oku.account.v1.TokenWithValues out_token = 5;
     */
    outToken?: TokenWithValues;
};
/**
 * Describes the message gfxcafe.oku.account.v1.Trade.
 * Use `create(TradeSchema)` to create a new message.
 */
export declare const TradeSchema: GenMessage<Trade>;
/**
 * SuccessfulBridge represents a bridge transaction
 *
 * @generated from message gfxcafe.oku.account.v1.SuccessfulBridge
 */
export type SuccessfulBridge = Message<"gfxcafe.oku.account.v1.SuccessfulBridge"> & {
    /**
     * Trade info
     *
     * @generated from field: gfxcafe.oku.account.v1.Trade trade = 1;
     */
    trade?: Trade;
    /**
     * Bridge used
     *
     * @generated from field: string bridge = 2;
     */
    bridge: string;
    /**
     * Input chain
     *
     * @generated from field: gfxcafe.oku.account.v1.Chain in_chain = 3;
     */
    inChain?: Chain;
    /**
     * Output chain
     *
     * @generated from field: gfxcafe.oku.account.v1.Chain out_chain = 4;
     */
    outChain?: Chain;
};
/**
 * Describes the message gfxcafe.oku.account.v1.SuccessfulBridge.
 * Use `create(SuccessfulBridgeSchema)` to create a new message.
 */
export declare const SuccessfulBridgeSchema: GenMessage<SuccessfulBridge>;
/**
 * WithdrawalOrDeposit represents a withdrawal or deposit
 *
 * @generated from message gfxcafe.oku.account.v1.WithdrawalOrDeposit
 */
export type WithdrawalOrDeposit = Message<"gfxcafe.oku.account.v1.WithdrawalOrDeposit"> & {
    /**
     * Core trade data
     *
     * @generated from field: gfxcafe.oku.account.v1.CoreTradeData core_trade_data = 1;
     */
    coreTradeData?: CoreTradeData;
    /**
     * Token with values
     *
     * @generated from field: gfxcafe.oku.account.v1.TokenWithValues token = 2;
     */
    token?: TokenWithValues;
    /**
     * Chain
     *
     * @generated from field: gfxcafe.oku.account.v1.Chain chain = 3;
     */
    chain?: Chain;
};
/**
 * Describes the message gfxcafe.oku.account.v1.WithdrawalOrDeposit.
 * Use `create(WithdrawalOrDepositSchema)` to create a new message.
 */
export declare const WithdrawalOrDepositSchema: GenMessage<WithdrawalOrDeposit>;
/**
 * SwapHistoryService provides swap history functionality
 *
 * @generated from service gfxcafe.oku.account.v1.SwapHistoryService
 */
export declare const SwapHistoryService: GenService<{
    /**
     * Get the swap history for a user (/swap/history)
     *
     * @generated from rpc gfxcafe.oku.account.v1.SwapHistoryService.History
     */
    history: {
        methodKind: "unary";
        input: typeof SwapHistoryRequestSchema;
        output: typeof SwapHistoryResponseSchema;
    };
}>;
