import type { Formatter, LogEntry } from "../types";
import { LogLevel } from "../types";
export interface CloudWatchTransportOptions {
    formatter?: Formatter;
    level?: LogLevel;
    logGroupName?: string;
    logStreamName?: string;
    region?: string;
    maxStreamSize?: number;
    maxStreamAge?: number;
    batchSize?: number;
    flushInterval?: number;
    timeout?: number;
}
export interface CloudWatchTransportState {
    currentStreamName: string;
    currentStreamSize: number;
    streamStartTime: number;
    sequenceToken: string | undefined;
    batch: LogEntry[];
    flushTimer?: ReturnType<typeof setInterval>;
}
export declare const createCloudWatchTransport: (options?: CloudWatchTransportOptions) => {
    log: (entry: LogEntry) => Promise<void>;
    setLevel: (level: LogLevel) => void;
    getLevel: () => LogLevel;
    rotateStream: () => Promise<void>;
    getCurrentStream: () => string;
    getCurrentStreamSize: () => number;
    flush: () => Promise<void>;
    close: () => Promise<void>;
    getConfig: () => {
        logGroupName: string;
        logStreamName: string;
        region: string;
        maxStreamSize: number;
        maxStreamAge: number;
        batchSize: number;
        flushInterval: number;
        timeout: number;
    };
    getStats: () => {
        currentStream: string;
        currentStreamSize: number;
        streamAge: number;
        batchSize: number;
        sequenceToken: string;
        flushTimerActive: boolean;
    };
};
//# sourceMappingURL=cloudwatch-transport.d.ts.map