import { DestinationPlugin } from '../plugin';
import { PluginType, SegmentAPISettings, SegmentEvent, UpdateType } from '../types';
import type { SegmentClient } from '../analytics';
export declare const SEGMENT_DESTINATION_KEY = "Segment.io";
export declare class SegmentDestination extends DestinationPlugin {
    type: PluginType;
    key: string;
    private apiHost?;
    private httpConfig?;
    private settingsResolve;
    private settingsPromise;
    private retryManager?;
    constructor();
    private getRateLimitConfig;
    private getBackoffConfig;
    private classifyBatchResult;
    private uploadBatch;
    private reportDroppedEvents;
    private aggregateErrors;
    /**
     * Drop events whose _queuedAt exceeds maxTotalBackoffDuration.
     * Returns the remaining fresh events.
     */
    private pruneExpiredEvents;
    /**
     * Update retry state based on aggregated batch results.
     * 429 takes precedence over transient errors.
     * Returns true if retry limits were exceeded (caller should drop events).
     */
    private updateRetryState;
    private processUploadResults;
    private sendEvents;
    private readonly queuePlugin;
    private getEndpoint;
    configure(analytics: SegmentClient): void;
    update(settings: SegmentAPISettings, _type: UpdateType): void;
    execute(event: SegmentEvent): Promise<SegmentEvent | undefined>;
    flush(): Promise<void>;
}
//# sourceMappingURL=SegmentDestination.d.ts.map