import type { TrackingConsentState, BufferedObservable, BufferedData } from '@datadog/browser-core';
import type { LogsConfiguration } from '../domain/configuration';
import type { CommonContext } from '../rawLogsEvent.types';
import type { Hooks } from '../domain/hooks';
export type StartLogs = typeof startLogs;
export type StartLogsResult = ReturnType<StartLogs>;
export declare function startLogs(configuration: LogsConfiguration, getCommonContext: () => CommonContext, trackingConsentState: TrackingConsentState, bufferedDataObservable: BufferedObservable<BufferedData>, hooks: Hooks): {
    handleLog: (logsMessage: import("../domain/logger").LogsMessage, logger: import("../domain/logger").Logger, handlingStack?: string, savedCommonContext?: CommonContext, savedDate?: import("@datadog/browser-core").TimeStamp) => void;
    getInternalContext: (startTime?: number) => import("../domain/contexts/internalContext").InternalContext | undefined;
    accountContext: {
        getContext: () => import("@datadog/browser-core").Context;
        setContext: (newContext: unknown) => void;
        setContextProperty: (key: string, property: any) => void;
        removeContextProperty: (key: string) => void;
        clearContext: () => void;
        changeObservable: import("@datadog/browser-core").Observable<void>;
    };
    globalContext: {
        getContext: () => import("@datadog/browser-core").Context;
        setContext: (newContext: unknown) => void;
        setContextProperty: (key: string, property: any) => void;
        removeContextProperty: (key: string) => void;
        clearContext: () => void;
        changeObservable: import("@datadog/browser-core").Observable<void>;
    };
    userContext: {
        getContext: () => import("@datadog/browser-core").Context;
        setContext: (newContext: unknown) => void;
        setContextProperty: (key: string, property: any) => void;
        removeContextProperty: (key: string) => void;
        clearContext: () => void;
        changeObservable: import("@datadog/browser-core").Observable<void>;
    };
    stop: () => void;
};
