import { Commitment, ConfirmOptions, Connection, PublicKey, TransactionVersion } from '@solana/web3.js';
import { IWallet, TxParams } from './types';
import { OracleInfo } from './oracles/types';
import { BulkAccountLoader } from './accounts/bulkAccountLoader';
import { DriftEnv } from './config';
import { TxSender } from './tx/types';
import { TxHandler, TxHandlerConfig } from './tx/txHandler';
import { DelistedMarketSetting, GrpcConfigs } from './accounts/types';
export type DriftClientConfig = {
    connection: Connection;
    wallet: IWallet;
    env?: DriftEnv;
    programID?: PublicKey;
    accountSubscription?: DriftClientSubscriptionConfig;
    opts?: ConfirmOptions;
    txSender?: TxSender;
    txHandler?: TxHandler;
    subAccountIds?: number[];
    activeSubAccountId?: number;
    perpMarketIndexes?: number[];
    spotMarketIndexes?: number[];
    /** @deprecated use marketLookupTables */
    marketLookupTable?: PublicKey;
    marketLookupTables?: PublicKey[];
    oracleInfos?: OracleInfo[];
    userStats?: boolean;
    authority?: PublicKey;
    includeDelegates?: boolean;
    authoritySubAccountMap?: Map<string, number[]>;
    skipLoadUsers?: boolean;
    txVersion?: TransactionVersion;
    txParams?: TxParams;
    enableMetricsEvents?: boolean;
    txHandlerConfig?: TxHandlerConfig;
    delistedMarketSetting?: DelistedMarketSetting;
    useHotWalletAdmin?: boolean;
};
export type DriftClientSubscriptionConfig = {
    type: 'grpc';
    grpcConfigs: GrpcConfigs;
    resubTimeoutMs?: number;
    logResubMessages?: boolean;
} | {
    type: 'websocket';
    resubTimeoutMs?: number;
    logResubMessages?: boolean;
    commitment?: Commitment;
} | {
    type: 'polling';
    accountLoader: BulkAccountLoader;
};
//# sourceMappingURL=driftClientConfig.d.ts.map