import { Connection, PublicKey } from '@solana/web3.js';
import { SolanaPriorityFeeResponse } from './solanaPriorityFeeMethod';
import { HeliusPriorityFeeResponse } from './heliusPriorityFeeMethod';
import { DriftMarketInfo, DriftPriorityFeeResponse } from './driftPriorityFeeMethod';
export declare const DEFAULT_PRIORITY_FEE_MAP_FREQUENCY_MS = 10000;
export interface PriorityFeeStrategy {
    calculate(samples: SolanaPriorityFeeResponse[] | HeliusPriorityFeeResponse | DriftPriorityFeeResponse): number;
}
export declare enum PriorityFeeMethod {
    SOLANA = "solana",
    HELIUS = "helius",
    DRIFT = "drift"
}
export type PriorityFeeSubscriberConfig = {
    connection?: Connection;
    frequencyMs?: number;
    addresses?: PublicKey[];
    driftMarkets?: DriftMarketInfo[];
    customStrategy?: PriorityFeeStrategy;
    priorityFeeMethod?: PriorityFeeMethod;
    slotsToCheck?: number;
    heliusRpcUrl?: string;
    driftPriorityFeeEndpoint?: string;
    maxFeeMicroLamports?: number;
    priorityFeeMultiplier?: number;
};
export type PriorityFeeSubscriberMapConfig = {
    frequencyMs?: number;
    driftMarkets?: DriftMarketInfo[];
    driftPriorityFeeEndpoint: string;
};
//# sourceMappingURL=types.d.ts.map