/**
 * Copyright 2025, Optimizely
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { LogHandler, LogLevel, OptimizelyLogger } from './logger';
import { MessageResolver } from '../message/message_resolver';
import { Maybe } from '../utils/type';
import { Platform } from '../platform_support';
export declare const INVALID_LOG_HANDLER = "Invalid log handler";
export declare const INVALID_LEVEL_PRESET = "Invalid level preset";
type LevelPreset = {
    level: LogLevel;
    infoResolver?: MessageResolver;
    errorResolver: MessageResolver;
};
declare const levelPresetSymbol: unique symbol;
export type OpaqueLevelPreset = {
    [levelPresetSymbol]: unknown;
};
export declare const DEBUG: OpaqueLevelPreset;
export declare const INFO: OpaqueLevelPreset;
export declare const WARN: OpaqueLevelPreset;
export declare const ERROR: OpaqueLevelPreset;
export declare const extractLevelPreset: (preset: OpaqueLevelPreset) => LevelPreset;
declare const loggerSymbol: unique symbol;
export type OpaqueLogger = {
    [loggerSymbol]: unknown;
};
export type LoggerConfig = {
    level: OpaqueLevelPreset;
    logHandler?: LogHandler;
};
export declare const createLogger: (config: LoggerConfig) => OpaqueLogger;
export declare const wrapLogger: (logger: OptimizelyLogger) => OpaqueLogger;
export declare const extractLogger: (logger: Maybe<OpaqueLogger>) => Maybe<OptimizelyLogger>;
export declare const __platforms: Platform[];
export {};
