export interface LogEvent {
    timestamp?: number;
    message?: string;
    ingestionTime?: number;
}
export interface LogStream {
    logStreamName?: string;
    creationTime?: number;
    firstEventTimestamp?: number;
    lastEventTimestamp?: number;
    lastIngestionTime?: number;
    uploadSequenceToken?: string;
    arn?: string;
    storedBytes?: number;
}
export declare class CloudWatchLogsClient {
    private client;
    private region;
    constructor(region?: string, profile?: string);
    createLogGroup(logGroupName: string, tags?: Record<string, string>): Promise<void>;
    putRetentionPolicy(logGroupName: string, retentionInDays: number): Promise<void>;
    describeLogStreams(options: {
        logGroupName: string;
        logStreamNamePrefix?: string;
        orderBy?: 'LogStreamName' | 'LastEventTime';
        descending?: boolean;
        limit?: number;
    }): Promise<{
        logStreams?: LogStream[];
        nextToken?: string;
    }>;
    getLogEvents(options: {
        logGroupName: string;
        logStreamName: string;
        startTime?: number;
        endTime?: number;
        limit?: number;
        startFromHead?: boolean;
    }): Promise<{
        events?: LogEvent[];
        nextForwardToken?: string;
        nextBackwardToken?: string;
    }>;
    describeLogGroups(options?: {
        logGroupNamePrefix?: string;
        limit?: number;
    }): Promise<{
        logGroups?: {
            logGroupName?: string;
            arn?: string;
            creationTime?: number;
        }[];
        nextToken?: string;
    }>;
    deleteLogGroup(logGroupName: string): Promise<void>;
    filterLogEvents(options: {
        logGroupName: string;
        logStreamNames?: string[];
        startTime?: number;
        endTime?: number;
        filterPattern?: string;
        limit?: number;
    }): Promise<{
        events?: LogEvent[];
        searchedLogStreams?: any[];
        nextToken?: string;
    }>;
}
