import type { CoreEngine } from '../../../app/engine.js';
import type { ContextValue } from '../../../features/context/context-state.js';
/**
 * The `InternalContext` controller injects reserved [custom contextual information](https://docs.coveo.com/en/3389/) key-values.
 * into the search requests and usage analytics search events sent from a search interface.
 * Reserved for strict context.
 * @internal
 */
export interface InternalContext {
    /**
     * Sets or updates a context key-value pair.
     *
     * @param contextKey - The context key.
     * @param contextValue - The context value.
     */
    add(contextKey: string, contextValue: ContextValue): void;
    /**
     * Removes a context key from the query.
     * @param key - The context key to remove.
     */
    remove(key: string): void;
}
/**
 * Creates an `InternalContext` controller instance
 *
 * @param engine - The headless engine.
 * @param props - The configurable `Context` controller properties.
 * @internal
 * @returns a `Context` controller instance.
 */
export declare function buildInternalCoreContext(engine: CoreEngine): InternalContext;
