/**
 * Session footer — renders token stats, context usage, model info, and mode label.
 *
 * Shortcut credit users see a gamified footer with tiered coloring on context %
 * and query counts. Non-credit users see cumulative cost and standard thresholds.
 */
import { type Component } from '../../../tui/index.js';
import type { ReadonlyFooterDataProvider } from '../../footer-data-provider.js';
import type { FooterSessionClient } from '../../session-client.js';
export interface FooterActionHandlers {
    onToggleAutoApprove?: () => void;
    onToggleRuntimePermissionBypass?: () => void | Promise<void>;
    onShowAgents?: () => void;
    onShowProposals?: () => void | Promise<void>;
    onExitFocus?: () => void;
}
export declare class FooterComponent implements Component {
    private session;
    private footerData;
    private actions;
    focused: boolean;
    private selectedActionIndex;
    private actionRows;
    /** Construct the footer with its session client, data provider, and optional action handlers. */
    constructor(session: FooterSessionClient, footerData: ReadonlyFooterDataProvider, actions?: FooterActionHandlers);
    /** Replace the footer's action callbacks (used after rebinding hosts on session swap). */
    setActionHandlers(actions: FooterActionHandlers): void;
    /** No-op; footer recomputes its layout each render so it has nothing to invalidate. */
    invalidate(): void;
    /** No-op; the footer holds no resources that need teardown. */
    dispose(): void;
    /** Move keyboard focus to the first available action row, returning false when there are none. */
    focusFirstAction(): boolean;
    /** Handle keyboard input while the footer is focused (move selection or activate an action). */
    handleInput(data: string): void;
    /** Invoke the action handler bound to the currently selected footer row. */
    private activateSelectedAction;
    /** Record metadata for the most recently appended footer line so it can be activated as an action. */
    private markActionLine;
    /** Apply selected-action highlighting to a footer line when it matches the currently focused row. */
    private maybeHighlightActionLine;
    /** Compose all footer lines (stats, model, mode, status rows) for the current width. */
    render(width: number): string[];
}
//# sourceMappingURL=footer.d.ts.map