import type { StreamingSlotMetric, StreamingSlotMetricHandler, StreamingSlotMetricType } from './streamingSlots';
export type StreamingSlotMetricMetadataValue = string | number | boolean | null;
export type StreamingSlotMetricMetadata = Record<string, StreamingSlotMetricMetadataValue>;
export type StreamingSlotMetricSinkEvent = StreamingSlotMetric & {
    at: number;
    route?: string;
    metadata?: StreamingSlotMetricMetadata;
};
export type StreamingSlotMetricSinkOptions = {
    onReport?: (metric: StreamingSlotMetricSinkEvent) => void | Promise<void>;
    onError?: (error: unknown, metric: StreamingSlotMetricSinkEvent) => void;
    route?: string;
    metadata?: StreamingSlotMetricMetadata;
    includeTypes?: StreamingSlotMetricType[];
    excludeTypes?: StreamingSlotMetricType[];
    sampleRate?: number;
};
export declare const createStreamingSlotMetricSink: ({ excludeTypes, includeTypes, metadata, onReport, onError, route, sampleRate }?: StreamingSlotMetricSinkOptions) => StreamingSlotMetricHandler;
