/** * @file Slot Consumer Registry * @description Registry for slot consumption strategies (ADR-088) */ import { SlotType, SlotMatch } from '@sharpee/if-domain'; import { SlotConsumer, SlotConsumerContext } from './slot-consumer'; export { SlotConsumer, SlotConsumerContext, getNextPatternToken, isPatternDelimiter } from './slot-consumer'; export { EntitySlotConsumer } from './entity-slot-consumer'; export { TextSlotConsumer } from './text-slot-consumer'; export { TypedSlotConsumer } from './typed-slot-consumer'; export { VocabularySlotConsumer } from './vocabulary-slot-consumer'; /** * Registry for slot consumers * Maps slot types to their consumer implementations */ export declare class SlotConsumerRegistry { private consumers; /** * Register a consumer for its declared slot types */ register(consumer: SlotConsumer): void; /** * Check if a consumer is registered for a slot type */ hasConsumer(slotType: SlotType): boolean; /** * Consume tokens for a slot type * @param ctx The consumption context * @returns SlotMatch if successful, null if no match * @throws Error if no consumer registered for the slot type */ consume(ctx: SlotConsumerContext): SlotMatch | null; /** * Get all registered slot types */ getRegisteredTypes(): SlotType[]; } /** * Create a default registry with all standard consumers * This will be populated as consumers are extracted */ export declare function createDefaultRegistry(): SlotConsumerRegistry; //# sourceMappingURL=index.d.ts.map