/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import React from 'react';
import { HistoryItem } from '../types.js';
import { Config } from '@vybestack/llxprt-code-core';
import { SessionState, SessionAction } from '../reducers/sessionReducer.js';
import { AppAction, AppState } from '../reducers/appReducer.js';
export interface SessionContextType {
    history: HistoryItem[];
    addItem: (itemData: Omit<HistoryItem, 'id'>, baseTimestamp: number) => number;
    updateItem: (id: number, updates: Partial<Omit<HistoryItem, 'id'>> | ((prevItem: HistoryItem) => Partial<Omit<HistoryItem, 'id'>>)) => void;
    clearItems: () => void;
    loadHistory: (newHistory: HistoryItem[]) => void;
    sessionState: SessionState;
    dispatch: React.Dispatch<SessionAction>;
    appState: AppState;
    appDispatch: React.Dispatch<AppAction>;
    checkPaymentModeChange: (forcePreviousProvider?: string) => void;
    performMemoryRefresh: () => Promise<void>;
}
export declare const SessionContext: React.Context<SessionContextType | undefined>;
interface SessionControllerProps {
    children: React.ReactNode;
    config: Config;
    isAuthenticating?: boolean;
}
export declare const SessionController: React.FC<SessionControllerProps>;
export {};
