/**
 * InputTriggerService (`ctx.inputTriggers`): the root half of the trigger pipeline — the
 * stateless source registry plus the per-session controller map. Every piece
 * of mutable interaction state (hit, menu, fetch) lives on the
 * {@link InputTriggerController}; the service only registers sources, resolves
 * controllers by session scope, and relays roster changes.
 */
import { Service } from '@deepseek-ai/cordis';
import type { Context } from '@deepseek-ai/cordis';
import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client';
import type { InputTriggerSource } from '../types.ts';
import { InputTriggerController } from './controller.ts';
import type { InputTriggerServiceContract } from './contract.ts';
/** The `ctx.inputTriggers` trigger pipeline service (root registry + controller resolution). */
export declare class InputTriggerService extends Service implements InputTriggerServiceContract {
    static inject: string[];
    private readonly live;
    /**
     * @param ctx - owning root context (the service registers itself as `slash`).
     */
    constructor(ctx: Context);
    /**
     * Register one trigger source. Live session controllers are notified so a
     * source arriving after scope birth still warms and joins the lexicon.
     * @param src - the source; (trigger, name) must be unique — duplicates throw.
     * @returns the disposer (callers wrap registration in ctx.effect). Disposal
     * while a controller shows the source's menu group drops that group.
     */
    registerSource(src: InputTriggerSource): () => void;
    /**
     * Resolve the per-session controller for one session scope (lazy; the
     * scope disposer removes and disposes it). Construction warms the source
     * roster once — sessions are always agent-backed, so scope birth is the
     * single prewarm moment.
     * @param actx - session-scope ctx.
     * @returns the resident controller.
     */
    sessionOf(actx: ClientContext): InputTriggerController;
    private sessions;
}
//# sourceMappingURL=service.d.ts.map