/**
 * 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 type { Category, Message, ComponentStack, CodeFrame } from "./parseLogBoxLog";
import type { Stack } from "./LogBoxSymbolication";
declare type SymbolicationStatus = "NONE" | "PENDING" | "COMPLETE" | "FAILED";
export declare type LogLevel = "warn" | "error" | "fatal" | "syntax";
export declare type LogBoxLogData = {
    level: LogLevel;
    type?: string;
    message: Message;
    stack: Stack;
    category: string;
    componentStack: ComponentStack;
    codeFrame?: CodeFrame;
    isComponentError: boolean;
};
export declare type StackType = "stack" | "component";
export declare class LogBoxLog {
    message: Message;
    type: string;
    category: Category;
    componentStack: ComponentStack;
    stack: Stack;
    count: number;
    level: LogLevel;
    codeFrame?: CodeFrame;
    isComponentError: boolean;
    symbolicated: Record<StackType, {
        error: null;
        stack: null;
        status: "NONE";
    } | {
        error: null;
        stack: null;
        status: "PENDING";
    } | {
        error: null;
        stack: Stack;
        status: "COMPLETE";
    } | {
        error: Error;
        stack: null;
        status: "FAILED";
    }>;
    constructor(data: LogBoxLogData);
    incrementCount(): void;
    getAvailableStack(type: StackType): Stack | null;
    retrySymbolicate(type: StackType, callback?: (status: SymbolicationStatus) => void): void;
    symbolicate(type: StackType, callback?: (status: SymbolicationStatus) => void): void;
    private componentStackCache;
    private getStack;
    private handleSymbolicate;
    private updateStatus;
}
export {};
