import type { Configuration, InitConfiguration } from '@datadog/browser-core';
import { ConsoleApiName, RawReportType } from '@datadog/browser-core';
import type { LogsEvent } from '../logsEvent.types';
import type { LogsEventDomainContext } from '../domainContext.types';
/**
 * Init Configuration for the Logs browser SDK.
 *
 * @category Main
 * @example NPM
 * ```ts
 * import { datadogLogs } from '@datadog/browser-logs'
 *
 * datadogLogs.init({
 *   clientToken: '<DATADOG_CLIENT_TOKEN>',
 *   site: '<DATADOG_SITE>',
 *   // ...
 * })
 * ```
 * @example CDN
 * ```ts
 * DD_LOGS.init({
 *   clientToken: '<DATADOG_CLIENT_TOKEN>',
 *   site: '<DATADOG_SITE>',
 *   // ...
 * })
 * ```
 */
export interface LogsInitConfiguration extends InitConfiguration {
    /**
     * Access to every logs collected by the Logs SDK before they are sent to Datadog.
     * It allows:
     * - Enrich your logs with additional context attributes
     * - Modify your logs to modify their content, or redact sensitive sequences (see the list of editable properties)
     * - Discard selected logs
     *
     * @category Data Collection
     */
    beforeSend?: LogsBeforeSend | undefined;
    /**
     * Forward console.error logs, uncaught exceptions and network errors to Datadog.
     *
     * @category Data Collection
     * @defaultValue true
     */
    forwardErrorsToLogs?: boolean | undefined;
    /**
     * Forward logs from console.* to Datadog. Use "all" to forward everything or an array of console API names to forward only a subset.
     *
     * @category Data Collection
     */
    forwardConsoleLogs?: ConsoleApiName[] | 'all' | undefined;
    /**
     * Forward reports from the [Reporting API](https://developer.mozilla.org/en-US/docs/Web/API/Reporting_API) to Datadog. Use "all" to forward everything or an array of report types to forward only a subset.
     *
     * @category Data Collection
     */
    forwardReports?: RawReportType[] | 'all' | undefined;
    /**
     * Use PCI-compliant intake. See [PCI DSS Compliance](https://docs.datadoghq.com/data_security/pci_compliance/?tab=logmanagement) for further information.
     *
     * @category Privacy
     * @defaultValue false
     */
    usePciIntake?: boolean;
}
/**
 * Function called before a Log event is sent to Datadog. See {@link LogsInitConfiguration.beforeSend}
 *
 * @param event - The log event
 * @param context - The log event domain context
 * @returns true if the event should be sent to Datadog, false otherwise
 */
export type LogsBeforeSend = (event: LogsEvent, context: LogsEventDomainContext) => boolean;
export type HybridInitConfiguration = Omit<LogsInitConfiguration, 'clientToken'>;
export interface LogsConfiguration extends Configuration {
    forwardErrorsToLogs: boolean;
    forwardConsoleLogs: ConsoleApiName[];
    forwardReports: RawReportType[];
    requestErrorResponseLengthLimit: number;
}
/**
 * arbitrary value, byte precision not needed
 */
export declare const DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT: number;
export declare function validateAndBuildLogsConfiguration(initConfiguration: LogsInitConfiguration, errorStack?: string): LogsConfiguration | undefined;
export declare function validateAndBuildForwardOption<T>(option: readonly T[] | 'all' | undefined, allowedValues: T[], label: string): T[] | undefined;
export declare function serializeLogsConfiguration(configuration: LogsInitConfiguration): {
    session_sample_rate: number | undefined;
    telemetry_sample_rate: number | undefined;
    telemetry_configuration_sample_rate: number | undefined;
    telemetry_usage_sample_rate: number | undefined;
    use_before_send: boolean;
    use_partitioned_cross_site_session_cookie: boolean | undefined;
    use_secure_session_cookie: boolean | undefined;
    use_proxy: boolean;
    silent_multiple_init: boolean | undefined;
    track_session_across_subdomains: boolean | undefined;
    track_anonymous_user: boolean | undefined;
    session_persistence: import("@datadog/browser-core").SessionPersistence | undefined;
    allow_fallback_to_local_storage: boolean;
    store_contexts_across_pages: boolean;
    allow_untrusted_events: boolean;
    tracking_consent: import("@datadog/browser-core").TrackingConsent | undefined;
    use_allowed_tracking_origins: boolean;
    beta_encode_cookie_options: boolean | undefined;
    source: "browser" | "flutter" | "unity" | undefined;
    sdk_version: string | undefined;
    variant: string | undefined;
    forward_errors_to_logs: boolean | undefined;
    forward_console_logs: ConsoleApiName[] | "all" | undefined;
    forward_reports: "all" | RawReportType[] | undefined;
    use_pci_intake: boolean | undefined;
};
