/**
 * Copyright (c) Evan Bacon.
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import * as React from "react";
import { LogBoxLog, StackType } from "./LogBoxLog";
import type { LogLevel } from "./LogBoxLog";
import type { Message, Category, ComponentStack, ExtendedExceptionData } from "./parseLogBoxLog";
export declare type LogBoxLogs = Set<LogBoxLog>;
export declare type LogData = {
    level: LogLevel;
    message: Message;
    category: Category;
    componentStack: ComponentStack;
};
declare type ExtendedError = any;
export declare type Observer = (options: {
    logs: LogBoxLogs;
    isDisabled: boolean;
    selectedLogIndex: number;
}) => void;
export declare type IgnorePattern = string | RegExp;
export declare type Subscription = {
    unsubscribe: () => void;
};
export declare type WarningInfo = {
    finalFormat: string;
    forceDialogImmediately: boolean;
    suppressDialog_LEGACY: boolean;
    suppressCompletely: boolean;
    monitorEvent: string | null;
    monitorListVersion: number;
    monitorSampleRate: number;
};
export declare type WarningFilter = (format: string) => WarningInfo;
declare type AppInfo = {
    appVersion: string;
    engine: string;
    onPress?: () => void;
};
export declare function reportLogBoxError(error: ExtendedError, componentStack?: string): void;
export declare function isLogBoxErrorMessage(message: string): boolean;
export declare function isMessageIgnored(message: string): boolean;
export declare function addLog(log: LogData): void;
export declare function addException(error: ExtendedExceptionData): void;
export declare function symbolicateLogNow(type: StackType, log: LogBoxLog): void;
export declare function retrySymbolicateLogNow(type: StackType, log: LogBoxLog): void;
export declare function symbolicateLogLazy(type: StackType, log: LogBoxLog): void;
export declare function clear(): void;
export declare function setSelectedLog(proposedNewIndex: number): void;
export declare function clearWarnings(): void;
export declare function clearErrors(): void;
export declare function dismiss(log: LogBoxLog): void;
export declare function setAppInfo(info: () => AppInfo): void;
export declare function getAppInfo(): AppInfo | null;
export declare function getIgnorePatterns(): Array<IgnorePattern>;
export declare function addIgnorePatterns(patterns: Array<IgnorePattern>): void;
export declare function setDisabled(value: boolean): void;
export declare function isDisabled(): boolean;
export declare function observe(observer: Observer): Subscription;
export declare function withSubscription(WrappedComponent: React.FC<{}>): React.Component<{}>;
export {};
