import { Coin } from '@cosmjs/proto-signing';
import { Method } from '@cosmjs/tendermint-rpc';
import { Order_ConditionType, Order_Side, Order_TimeInForce } from '@ritbit/v4-proto/src/codegen/ritbit/clob/order';
import { PerpetualMarketType } from '@ritbit/v4-proto/src/codegen/ritbit/perpetuals/perpetual';
import BigNumber from 'bignumber.js';
import Long from 'long';
export type Integer = BigNumber;
export type GenericParams = {
    [name: string]: any;
};
export type Data = any;
export type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
export interface PartialTransactionOptions {
    accountNumber: number;
    chainId: string;
}
export interface TransactionOptions extends PartialTransactionOptions {
    sequence: number;
    authenticators?: Long[];
}
export declare enum OrderFlags {
    SHORT_TERM = 0,
    LONG_TERM = 64,
    CONDITIONAL = 32
}
export interface ITwapParameters {
    duration: number;
    interval: number;
    priceTolerance: number;
}
export interface IBuilderCodeParameters {
    builderAddress: string;
    feePpm: number;
}
export interface IBasicOrder {
    clientId: number;
    orderFlags: OrderFlags;
    clobPairId: number;
    goodTilBlock?: number;
    goodTilBlockTime?: number;
}
export interface IPlaceOrder extends IBasicOrder {
    side: Order_Side;
    quantums: Long;
    subticks: Long;
    timeInForce: Order_TimeInForce;
    reduceOnly: boolean;
    clientMetadata: number;
    conditionType?: Order_ConditionType;
    conditionalOrderTriggerSubticks?: Long;
    twapParameters?: ITwapParameters;
    builderCodeParameters?: IBuilderCodeParameters;
    orderRouterAddress?: string;
}
export interface ICancelOrder extends IBasicOrder {
}
export interface IBatchCancelOrder {
    shortTermOrders: {
        clobPairId: number;
        clientIds: number[];
    }[];
    goodTilBlock: number;
}
export interface BroadcastOptions {
    broadcastPollIntervalMs: number;
    broadcastTimeoutMs: number;
}
export interface DenomConfig {
    USDC_DENOM: string;
    USDC_DECIMALS: number;
    USDC_GAS_DENOM?: string;
    CHAINTOKEN_DENOM: string;
    CHAINTOKEN_DECIMALS: number;
    CHAINTOKEN_GAS_DENOM?: string;
}
export type BroadcastMode = Method.BroadcastTxAsync | Method.BroadcastTxSync | Method.BroadcastTxCommit;
export interface TimeResponse {
    iso: string;
    epoch: number;
}
export interface HeightResponse {
    height: number;
    time: string;
}
export interface ComplianceResponse {
    restricted: boolean;
    reason?: string;
}
export declare enum ComplianceReason {
    MANUAL = "MANUAL",
    US_GEO = "US_GEO",
    CA_GEO = "CA_GEO",
    GB_GEO = "GB_GEO",
    SANCTIONED_GEO = "SANCTIONED_GEO",
    COMPLIANCE_PROVIDER = "COMPLIANCE_PROVIDER"
}
export declare enum ComplianceStatus {
    COMPLIANT = "COMPLIANT",
    FIRST_STRIKE_CLOSE_ONLY = "FIRST_STRIKE_CLOSE_ONLY",
    FIRST_STRIKE = "FIRST_STRIKE",
    CLOSE_ONLY = "CLOSE_ONLY",
    BLOCKED = "BLOCKED"
}
export interface ComplianceV2Response {
    status: ComplianceStatus;
    reason?: ComplianceReason;
    updatedAt?: string;
}
export type SquidIBCPayload = {
    msgTypeUrl: '/ibc.applications.transfer.v1.MsgTransfer';
    msg: Partial<{
        sourcePort: string;
        sourceChannel: string;
        token: Coin;
        sender: string;
        receiver: string;
        timeoutTimestamp: Long;
        memo: string;
    }>;
};
export type GovAddNewMarketParams = {
    id: number;
    ticker: string;
    priceExponent: number;
    minPriceChange: number;
    minExchanges: number;
    exchangeConfigJson: string;
    liquidityTier: number;
    atomicResolution: number;
    marketType: PerpetualMarketType;
    quantumConversionExponent: number;
    stepBaseQuantums: Long;
    subticksPerTick: number;
    delayBlocks: number;
};
export * from './modules/proto-includes';
//# sourceMappingURL=types.d.ts.map