import { Observable } from 'lib0/observable';
import { SessionWidgetConfig, SessionState, ToastConfig } from '../types';
import { ButtonState, ContinuousRecordingSaveButtonState } from './buttonStateConfigs';
type SessionWidgetEvents = 'toggle' | 'pause' | 'resume' | 'cancel' | 'continuous-debugging' | 'save';
export declare class SessionWidget extends Observable<SessionWidgetEvents> {
    recorderButton: HTMLButtonElement;
    private uiManager;
    private initialPopover;
    private finalPopover;
    private overlay;
    private submitSessionDialog;
    private toast;
    private _isStarted;
    private _isPaused;
    private _isInitialized;
    private _error;
    private _recorderPlacement;
    private _finalPopoverVisible;
    private _initialPopoverVisible;
    private _continuousRecording;
    private _showContinuousRecording;
    private _buttonState;
    private _widgetTextOverrides;
    private commentTextarea;
    private buttonDraggabilityObserver;
    private dragManager;
    buttonClickExternalHandler: (() => boolean | void) | null;
    showRecorderButton: boolean;
    timerInterval: any;
    seconds: number;
    set buttonState(newState: ButtonState);
    private set initialPopoverVisible(value);
    private set finalPopoverVisible(value);
    get error(): string;
    set error(v: string);
    set isStarted(v: boolean);
    set isPaused(v: boolean);
    constructor();
    updateState(state: SessionState | null, continuousRecording: boolean): void;
    updateContinuousRecordingState(checked: boolean, disabled?: boolean): void;
    updateSaveContinuousDebugSessionState(state: ContinuousRecordingSaveButtonState): void;
    /**
     * Shows a toast message with optional action button
     * @param config - The toast configuration including message, type, and optional button
     * @param duration - Duration in milliseconds to show the toast (default: 10000ms)
     */
    showToast(config: ToastConfig, duration?: number): void;
    /**
     * Hides the currently displayed toast message
     */
    hideToast(): void;
    private handleClickOutside;
    private observeButtonDraggableMode;
    initUiManager(): void;
    init(options: SessionWidgetConfig): void;
    private appendElements;
    private addRecorderDragFunctionality;
    private updatePopoverPosition;
    private addEventListeners;
    private handleStopRecording;
    handleUIReseting(): void;
    private handleCloseInitialPopover;
    private handleCloseFinalPopover;
    onRequestError(): void;
    private handleDismissRecording;
    private resetRecordingButton;
    private addListener;
    private onRecordingButtonClick;
    private updateButton;
    private handleContinuousRecordingChange;
    private handleSaveContinuousDebugSession;
    private startRecording;
    private onStart;
    private onStop;
    private onPause;
    private onResume;
    private onCancel;
    enable(): void;
    disable(): void;
    destroy(): void;
    startTimer(): void;
    stopTimer(): void;
    makeOverlayDraggable(): void;
}
export {};
//# sourceMappingURL=index.d.ts.map