/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { type Config } from '@vybestack/llxprt-code-core';
import type React from 'react';
export declare const PASTE_MODE_PREFIX = "\u001B[200~";
export declare const PASTE_MODE_SUFFIX = "\u001B[201~";
export declare const DRAG_COMPLETION_TIMEOUT_MS = 100;
export declare const KITTY_SEQUENCE_TIMEOUT_MS = 50;
export declare const SINGLE_QUOTE = "'";
export declare const DOUBLE_QUOTE = "\"";
export interface Key {
    name: string;
    ctrl: boolean;
    meta: boolean;
    shift: boolean;
    paste: boolean;
    sequence: string;
    kittyProtocol?: boolean;
    insertable?: boolean;
}
export type KeypressHandler = (key: Key) => void;
interface KeypressContextValue {
    subscribe: (handler: KeypressHandler) => void;
    unsubscribe: (handler: KeypressHandler) => void;
    refresh: () => void;
}
export declare function useKeypressContext(): KeypressContextValue;
/**
 * Provides a React context that captures terminal keypresses and broadcasts parsed key events to subscribers.
 *
 * This component manages stdin raw mode and emits normalized Key objects (including support for Kitty protocol parsing,
 * paste start/end payloads, drag-like quote buffering, modifier mapping, and the `insertable` flag) to handlers
 * registered via the KeypressContext. It also flushes buffered input on focus/paste interruptions and on unmount.
 *
 * @param children - React children to be wrapped by the provider
 * @param kittyProtocolEnabled - Enable parsing and buffering of Kitty/CSI parameterized sequences
 * @param config - Optional runtime configuration used for logging and overflow events
 * @param debugKeystrokeLogging - When true, enable verbose debug logging of internal key parsing and buffering
 * @returns The provider React element that supplies the KeypressContext to descendants
 */
export declare function KeypressProvider({ children, kittyProtocolEnabled, config, debugKeystrokeLogging, mouseEventsEnabled, }: {
    children: React.ReactNode;
    kittyProtocolEnabled: boolean;
    config?: Config;
    debugKeystrokeLogging?: boolean;
    mouseEventsEnabled?: boolean;
}): import("react/jsx-runtime").JSX.Element;
export {};
