import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
import type { DeleteOrdersSchema, PlaceLimitOrdersResponceSchema, TokenLimitOrdersSchema } from "./orders_pb";
import type { LandedTxnState } from "./txncb_pb";
import type { QuoteKind, TokenAddressSchema, UnixTimestamp } from "./common_pb";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file cabal.proto.
 */
export declare const file_cabal: GenFile;
/**
 * @generated from message cabal.UserAction
 */
export type UserAction = Message<"cabal.UserAction"> & {
    /**
     * @generated from oneof cabal.UserAction.user_action_kind
     */
    userActionKind: {
        /**
         * @generated from field: cabal.Buy buy = 1;
         */
        value: Buy;
        case: "buy";
    } | {
        /**
         * @generated from field: cabal.Sell sell = 2;
         */
        value: Sell;
        case: "sell";
    } | {
        /**
         * @generated from field: cabal.TokenTradeStats token_trade_stats = 3;
         */
        value: TokenTradeStats;
        case: "tokenTradeStats";
    } | {
        /**
         * @generated from field: cabal.Ping ping = 4;
         */
        value: Ping;
        case: "ping";
    } | {
        /**
         * @generated from field: cabal.Pong pong = 5;
         */
        value: Pong;
        case: "pong";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * Describes the message cabal.UserAction.
 * Use `create(UserActionSchema)` to create a new message.
 */
export declare const UserActionSchema: GenMessage<UserAction>;
/**
 * @generated from message cabal.TradeEventSub
 */
export type TradeEventSub = Message<"cabal.TradeEventSub"> & {};
/**
 * Describes the message cabal.TradeEventSub.
 * Use `create(TradeEventSubSchema)` to create a new message.
 */
export declare const TradeEventSubSchema: GenMessage<TradeEventSub>;
/**
 * @generated from message cabal.UserActionSub
 */
export type UserActionSub = Message<"cabal.UserActionSub"> & {};
/**
 * Describes the message cabal.UserActionSub.
 * Use `create(UserActionSubSchema)` to create a new message.
 */
export declare const UserActionSubSchema: GenMessage<UserActionSub>;
/**
 * @generated from message cabal.EchoRequest
 */
export type EchoRequest = Message<"cabal.EchoRequest"> & {
    /**
     * @generated from field: string message = 1;
     */
    message: string;
};
/**
 * Describes the message cabal.EchoRequest.
 * Use `create(EchoRequestSchema)` to create a new message.
 */
export declare const EchoRequestSchema: GenMessage<EchoRequest>;
/**
 * @generated from message cabal.EchoResponse
 */
export type EchoResponse = Message<"cabal.EchoResponse"> & {
    /**
     * @generated from field: string message = 1;
     */
    message: string;
};
/**
 * Describes the message cabal.EchoResponse.
 * Use `create(EchoResponseSchema)` to create a new message.
 */
export declare const EchoResponseSchema: GenMessage<EchoResponse>;
/**
 * @generated from message cabal.TradeEventRequest
 */
export type TradeEventRequest = Message<"cabal.TradeEventRequest"> & {
    /**
     * @generated from oneof cabal.TradeEventRequest.trade_event_request_kind
     */
    tradeEventRequestKind: {
        /**
         * @generated from field: cabal.TokenTradeEventSub sub = 1;
         */
        value: TokenTradeEventSub;
        case: "sub";
    } | {
        /**
         * @generated from field: cabal.Ping ping = 2;
         */
        value: Ping;
        case: "ping";
    } | {
        /**
         * @generated from field: cabal.Pong pong = 3;
         */
        value: Pong;
        case: "pong";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * Describes the message cabal.TradeEventRequest.
 * Use `create(TradeEventRequestSchema)` to create a new message.
 */
export declare const TradeEventRequestSchema: GenMessage<TradeEventRequest>;
/**
 * @generated from message cabal.TokenTradeEventSub
 */
export type TokenTradeEventSub = Message<"cabal.TokenTradeEventSub"> & {
    /**
     * @generated from field: string mint = 1;
     */
    mint: string;
};
/**
 * Describes the message cabal.TokenTradeEventSub.
 * Use `create(TokenTradeEventSubSchema)` to create a new message.
 */
export declare const TokenTradeEventSubSchema: GenMessage<TokenTradeEventSub>;
/**
 * @generated from message cabal.TokenStatusRequest
 */
export type TokenStatusRequest = Message<"cabal.TokenStatusRequest"> & {
    /**
     * @generated from field: string mint = 1;
     */
    mint: string;
};
/**
 * Describes the message cabal.TokenStatusRequest.
 * Use `create(TokenStatusRequestSchema)` to create a new message.
 */
export declare const TokenStatusRequestSchema: GenMessage<TokenStatusRequest>;
/**
 * @generated from message cabal.TradeEventResponse
 */
export type TradeEventResponse = Message<"cabal.TradeEventResponse"> & {
    /**
     * @generated from oneof cabal.TradeEventResponse.trade_event_response_kind
     */
    tradeEventResponseKind: {
        /**
         * @generated from field: cabal.TradeEvent trade_event = 1;
         */
        value: TradeEvent;
        case: "tradeEvent";
    } | {
        /**
         * @generated from field: cabal.TokenStatus token_status = 2;
         */
        value: TokenStatus;
        case: "tokenStatus";
    } | {
        /**
         * @generated from field: cabal.Ping ping = 3;
         */
        value: Ping;
        case: "ping";
    } | {
        /**
         * @generated from field: cabal.Pong pong = 4;
         */
        value: Pong;
        case: "pong";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * Describes the message cabal.TradeEventResponse.
 * Use `create(TradeEventResponseSchema)` to create a new message.
 */
export declare const TradeEventResponseSchema: GenMessage<TradeEventResponse>;
/**
 * @generated from message cabal.Ping
 */
export type Ping = Message<"cabal.Ping"> & {
    /**
     * @generated from field: uint64 count = 1;
     */
    count: bigint;
};
/**
 * Describes the message cabal.Ping.
 * Use `create(PingSchema)` to create a new message.
 */
export declare const PingSchema: GenMessage<Ping>;
/**
 * @generated from message cabal.Pong
 */
export type Pong = Message<"cabal.Pong"> & {
    /**
     * @generated from field: uint64 count = 1;
     */
    count: bigint;
};
/**
 * Describes the message cabal.Pong.
 * Use `create(PongSchema)` to create a new message.
 */
export declare const PongSchema: GenMessage<Pong>;
/**
 * @generated from message cabal.UserResponse
 */
export type UserResponse = Message<"cabal.UserResponse"> & {
    /**
     * @generated from oneof cabal.UserResponse.user_response_kind
     */
    userResponseKind: {
        /**
         * @generated from field: cabal.TradeResponse trade_status = 1;
         */
        value: TradeResponse;
        case: "tradeStatus";
    } | {
        /**
         * @generated from field: cabal.TokenTradeStats trade_stats = 2;
         */
        value: TokenTradeStats;
        case: "tradeStats";
    } | {
        /**
         * @generated from field: txncb.LandedTxnState txn_cb = 3;
         */
        value: LandedTxnState;
        case: "txnCb";
    } | {
        /**
         * @generated from field: cabal.Ping ping = 4;
         */
        value: Ping;
        case: "ping";
    } | {
        /**
         * @generated from field: cabal.Pong pong = 5;
         */
        value: Pong;
        case: "pong";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * Describes the message cabal.UserResponse.
 * Use `create(UserResponseSchema)` to create a new message.
 */
export declare const UserResponseSchema: GenMessage<UserResponse>;
/**
 * @generated from message cabal.TokenTradeStatsCall
 */
export type TokenTradeStatsCall = Message<"cabal.TokenTradeStatsCall"> & {
    /**
     * @generated from field: string mint = 1;
     */
    mint: string;
};
/**
 * Describes the message cabal.TokenTradeStatsCall.
 * Use `create(TokenTradeStatsCallSchema)` to create a new message.
 */
export declare const TokenTradeStatsCallSchema: GenMessage<TokenTradeStatsCall>;
/**
 * @generated from message cabal.TradeResponse
 */
export type TradeResponse = Message<"cabal.TradeResponse"> & {
    /**
     * @generated from field: uint64 slot = 2;
     */
    slot: bigint;
};
/**
 * Describes the message cabal.TradeResponse.
 * Use `create(TradeResponseSchema)` to create a new message.
 */
export declare const TradeResponseSchema: GenMessage<TradeResponse>;
/**
 * @generated from message cabal.TokenStatus
 */
export type TokenStatus = Message<"cabal.TokenStatus"> & {
    /**
     * @generated from field: string mint = 1;
     */
    mint: string;
    /**
     * @generated from field: string pool_id = 2;
     */
    poolId: string;
    /**
     * @generated from field: cabal.PoolKind pool_kind = 3;
     */
    poolKind: PoolKind;
    /**
     * @generated from field: cabal.MigrationStatus migration_status = 4;
     */
    migrationStatus: MigrationStatus;
    /**
     * @generated from field: uint64 supply = 5;
     */
    supply: bigint;
    /**
     * @generated from field: uint64 base_liq = 6;
     */
    baseLiq: bigint;
    /**
     * @generated from field: uint64 quote_liq = 7;
     */
    quoteLiq: bigint;
    /**
     * @generated from field: common.QuoteKind qoute_kind = 8;
     */
    qouteKind: QuoteKind;
    /**
     * @generated from field: optional uint32 tax_bps = 9;
     */
    taxBps?: number;
    /**
     * @generated from field: string ticker = 10;
     */
    ticker: string;
};
/**
 * Describes the message cabal.TokenStatus.
 * Use `create(TokenStatusSchema)` to create a new message.
 */
export declare const TokenStatusSchema: GenMessage<TokenStatus>;
/**
 * @generated from message cabal.TokenTradeStats
 */
export type TokenTradeStats = Message<"cabal.TokenTradeStats"> & {
    /**
     * @generated from field: string mint = 1;
     */
    mint: string;
    /**
     * @generated from field: uint64 token_balance = 2;
     */
    tokenBalance: bigint;
    /**
     * @generated from field: uint64 buy_qoute = 3;
     */
    buyQoute: bigint;
    /**
     * @generated from field: uint64 sell_qoute = 4;
     */
    sellQoute: bigint;
    /**
     * @generated from field: uint64 buy_base = 5;
     */
    buyBase: bigint;
    /**
     * @generated from field: uint64 sell_base = 6;
     */
    sellBase: bigint;
    /**
     * @generated from field: uint32 buys = 7;
     */
    buys: number;
    /**
     * @generated from field: uint32 sells = 8;
     */
    sells: number;
    /**
     * @generated from field: uint64 sol_balance = 9;
     */
    solBalance: bigint;
    /**
     * @generated from field: uint64 last_traded_slot = 10;
     */
    lastTradedSlot: bigint;
    /**
     * @generated from field: uint32 token_decimals = 11;
     */
    tokenDecimals: number;
    /**
     * @generated from field: common.QuoteKind qoute_kind = 12;
     */
    qouteKind: QuoteKind;
};
/**
 * Describes the message cabal.TokenTradeStats.
 * Use `create(TokenTradeStatsSchema)` to create a new message.
 */
export declare const TokenTradeStatsSchema: GenMessage<TokenTradeStats>;
/**
 * @generated from message cabal.TradeEvent
 */
export type TradeEvent = Message<"cabal.TradeEvent"> & {
    /**
     * @generated from oneof cabal.TradeEvent.trade_event_kind
     */
    tradeEventKind: {
        /**
         * @generated from field: cabal.TradeEventData buy = 1;
         */
        value: TradeEventData;
        case: "buy";
    } | {
        /**
         * @generated from field: cabal.TradeEventData sell = 2;
         */
        value: TradeEventData;
        case: "sell";
    } | {
        /**
         * @generated from field: cabal.TradeEventData deposit = 3;
         */
        value: TradeEventData;
        case: "deposit";
    } | {
        /**
         * @generated from field: cabal.TradeEventData withdraw = 4;
         */
        value: TradeEventData;
        case: "withdraw";
    } | {
        /**
         * @generated from field: cabal.TradeEventData migration_start = 5;
         */
        value: TradeEventData;
        case: "migrationStart";
    } | {
        /**
         * @generated from field: cabal.TradeEventData migration_end = 6;
         */
        value: TradeEventData;
        case: "migrationEnd";
    } | {
        /**
         * @generated from field: cabal.BurnEventData burn_liq = 7;
         */
        value: BurnEventData;
        case: "burnLiq";
    } | {
        /**
         * @generated from field: cabal.BurnEventData burn_mint = 8;
         */
        value: BurnEventData;
        case: "burnMint";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * Describes the message cabal.TradeEvent.
 * Use `create(TradeEventSchema)` to create a new message.
 */
export declare const TradeEventSchema: GenMessage<TradeEvent>;
/**
 * @generated from message cabal.TradeEventData
 */
export type TradeEventData = Message<"cabal.TradeEventData"> & {
    /**
     * @generated from field: uint64 amount_sol = 1;
     */
    amountSol: bigint;
    /**
     * @generated from field: uint64 base_liq = 2;
     */
    baseLiq: bigint;
    /**
     * @generated from field: uint64 quote_liq = 3;
     */
    quoteLiq: bigint;
    /**
     * @generated from field: cabal.PoolKind pool_kind = 4;
     */
    poolKind: PoolKind;
};
/**
 * Describes the message cabal.TradeEventData.
 * Use `create(TradeEventDataSchema)` to create a new message.
 */
export declare const TradeEventDataSchema: GenMessage<TradeEventData>;
/**
 * @generated from message cabal.BurnEventData
 */
export type BurnEventData = Message<"cabal.BurnEventData"> & {
    /**
     * @generated from field: uint64 amount = 1;
     */
    amount: bigint;
    /**
     * @generated from field: uint64 left = 2;
     */
    left: bigint;
};
/**
 * Describes the message cabal.BurnEventData.
 * Use `create(BurnEventDataSchema)` to create a new message.
 */
export declare const BurnEventDataSchema: GenMessage<BurnEventData>;
/**
 * @generated from message cabal.Buy
 */
export type Buy = Message<"cabal.Buy"> & {
    /**
     * @generated from field: uint64 amount = 1;
     */
    amount: bigint;
    /**
     * @generated from field: string mint = 2;
     */
    mint: string;
    /**
     * fract 0 - 1
     *
     * @generated from field: uint32 slippage_bps = 3;
     */
    slippageBps: number;
    /**
     * @generated from field: uint64 tip = 4;
     */
    tip: bigint;
    /**
     * lamports
     *
     * @generated from field: optional uint64 priority_fee = 5;
     */
    priorityFee?: bigint;
    /**
     * @generated from field: optional uint64 nonce = 6;
     */
    nonce?: bigint;
    /**
     * @generated from field: optional uint32 slot_latency = 7;
     */
    slotLatency?: number;
    /**
     * Utc timestamp in seconds
     *
     * @generated from field: optional common.UnixTimestamp expire_at = 8;
     */
    expireAt?: UnixTimestamp;
    /**
     * @generated from field: optional common.QuoteKind qoute_kind = 9;
     */
    qouteKind?: QuoteKind;
};
/**
 * Describes the message cabal.Buy.
 * Use `create(BuySchema)` to create a new message.
 */
export declare const BuySchema: GenMessage<Buy>;
/**
 * @generated from message cabal.Sell
 */
export type Sell = Message<"cabal.Sell"> & {
    /**
     * fract 0 - 1
     *
     * @generated from field: uint32 amount_bps = 1;
     */
    amountBps: number;
    /**
     * @generated from field: string mint = 2;
     */
    mint: string;
    /**
     * fract 0 - 1
     *
     * @generated from field: uint32 slippage_bps = 3;
     */
    slippageBps: number;
    /**
     * @generated from field: uint64 tip = 4;
     */
    tip: bigint;
    /**
     * lamports
     *
     * @generated from field: optional uint64 priority_fee = 5;
     */
    priorityFee?: bigint;
    /**
     * @generated from field: optional uint64 nonce = 6;
     */
    nonce?: bigint;
    /**
     * @generated from field: optional uint32 slot_latency = 7;
     */
    slotLatency?: number;
    /**
     * Utc timestamp in seconds
     *
     * @generated from field: optional common.UnixTimestamp expire_at = 8;
     */
    expireAt?: UnixTimestamp;
};
/**
 * Describes the message cabal.Sell.
 * Use `create(SellSchema)` to create a new message.
 */
export declare const SellSchema: GenMessage<Sell>;
/**
 * @generated from enum cabal.UserTradeStatus
 */
export declare enum UserTradeStatus {
    /**
     * @generated from enum value: accepted = 0;
     */
    accepted = 0,
    /**
     * @generated from enum value: rejected = 1;
     */
    rejected = 1
}
/**
 * Describes the enum cabal.UserTradeStatus.
 */
export declare const UserTradeStatusSchema: GenEnum<UserTradeStatus>;
/**
 * @generated from enum cabal.MigrationStatus
 */
export declare enum MigrationStatus {
    /**
     * @generated from enum value: migrated = 0;
     */
    migrated = 0,
    /**
     * @generated from enum value: migrating = 1;
     */
    migrating = 1,
    /**
     * @generated from enum value: pre_migration = 2;
     */
    pre_migration = 2,
    /**
     * @generated from enum value: non_migratable = 3;
     */
    non_migratable = 3
}
/**
 * Describes the enum cabal.MigrationStatus.
 */
export declare const MigrationStatusSchema: GenEnum<MigrationStatus>;
/**
 * @generated from enum cabal.PoolKind
 */
export declare enum PoolKind {
    /**
     * @generated from enum value: pump = 0;
     */
    pump = 0,
    /**
     * @generated from enum value: ray_amm = 1;
     */
    ray_amm = 1,
    /**
     * @generated from enum value: moonshot = 2;
     */
    moonshot = 2,
    /**
     * @generated from enum value: meteora = 3;
     */
    meteora = 3,
    /**
     * @generated from enum value: ray_clmm = 4;
     */
    ray_clmm = 4,
    /**
     * @generated from enum value: ray_cpmm = 5;
     */
    ray_cpmm = 5,
    /**
     * @generated from enum value: pump_amm = 6;
     */
    pump_amm = 6,
    /**
     * @generated from enum value: ray_ll = 7;
     */
    ray_ll = 7
}
/**
 * Describes the enum cabal.PoolKind.
 */
export declare const PoolKindSchema: GenEnum<PoolKind>;
/**
 * @generated from service cabal.CabalRpc
 */
export declare const CabalRpc: GenService<{
    /**
     * @generated from rpc cabal.CabalRpc.UserActivityUni
     */
    userActivityUni: {
        methodKind: "server_streaming";
        input: typeof UserActionSubSchema;
        output: typeof UserResponseSchema;
    };
    /**
     * @generated from rpc cabal.CabalRpc.TradesUni
     */
    tradesUni: {
        methodKind: "server_streaming";
        input: typeof TradeEventSubSchema;
        output: typeof TradeEventResponseSchema;
    };
    /**
     * @generated from rpc cabal.CabalRpc.SubscribeToken
     */
    subscribeToken: {
        methodKind: "unary";
        input: typeof TokenTradeEventSubSchema;
        output: typeof TradeResponseSchema;
    };
    /**
     * @generated from rpc cabal.CabalRpc.TradePing
     */
    tradePing: {
        methodKind: "unary";
        input: typeof PingSchema;
        output: typeof PongSchema;
    };
    /**
     * @generated from rpc cabal.CabalRpc.UserPing
     */
    userPing: {
        methodKind: "unary";
        input: typeof PingSchema;
        output: typeof PongSchema;
    };
    /**
     * @generated from rpc cabal.CabalRpc.MarketSell
     */
    marketSell: {
        methodKind: "unary";
        input: typeof SellSchema;
        output: typeof TradeResponseSchema;
    };
    /**
     * @generated from rpc cabal.CabalRpc.MarketBuy
     */
    marketBuy: {
        methodKind: "unary";
        input: typeof BuySchema;
        output: typeof TradeResponseSchema;
    };
    /**
     * @generated from rpc cabal.CabalRpc.GetTokenLimitOrders
     */
    getTokenLimitOrders: {
        methodKind: "unary";
        input: typeof TokenAddressSchema;
        output: typeof TokenLimitOrdersSchema;
    };
    /**
     * @generated from rpc cabal.CabalRpc.PlaceLimitOrders
     */
    placeLimitOrders: {
        methodKind: "unary";
        input: typeof TokenLimitOrdersSchema;
        output: typeof PlaceLimitOrdersResponceSchema;
    };
    /**
     * @generated from rpc cabal.CabalRpc.DeleteLimitOrders
     */
    deleteLimitOrders: {
        methodKind: "unary";
        input: typeof DeleteOrdersSchema;
        output: typeof PlaceLimitOrdersResponceSchema;
    };
}>;
