/** * ConciergeAgent - Prefab agent that acts as a virtual concierge for a venue * or business, providing information about services, amenities, and hours, * and answering availability and directions questions. * * Ported from the Python SDK `signalwire.prefabs.concierge.ConciergeAgent`. */ import { AgentBase } from '../AgentBase.js'; import type { AgentOptions } from '../types.js'; /** Configuration for the {@link ConciergeAgent}. */ export interface ConciergeConfig { /** Name of the venue or business (required). */ venueName: string; /** List of services offered by the venue (required). */ services: string[]; /** Dictionary of amenities, each mapping to a dict of detail keys/values. */ amenities: Record>; /** Optional hours of operation by category (e.g. `{ default: "9 AM - 5 PM" }`). */ hoursOfOperation?: Record; /** Optional special instructions appended to the agent's instruction bullets. */ specialInstructions?: string[]; /** Optional custom welcome message spoken as a non-bargeable static greeting. */ welcomeMessage?: string; /** Agent display name (defaults to `"concierge"`). */ name?: string; /** HTTP route for this agent (defaults to `"/concierge"`). */ route?: string; /** Additional AgentBase options forwarded to `super()`. */ agentOptions?: Partial; } /** * Prefab agent that acts as a virtual concierge for a venue, providing information * about services, amenities, hours of operation, availability, and directions. * * @example Hotel concierge * ```ts * import { ConciergeAgent } from '@signalwire/sdk'; * * const agent = new ConciergeAgent({ * venueName: 'The Park Hotel', * services: ['Room service', 'Valet parking', 'Spa', 'Restaurant'], * hoursOfOperation: { * restaurant: '7 AM - 10 PM daily', * spa: '9 AM - 9 PM daily', * default: '24 hours', * }, * amenities: { * pool: { location: 'Rooftop', hours: '6 AM - 10 PM' }, * gym: { location: 'Floor 2', hours: '24 hours' }, * }, * }); * * await agent.serve({ port: 3000 }); * ``` */ export declare class ConciergeAgent extends AgentBase { /** Name of the venue or business. */ venueName: string; /** List of services offered by the venue. */ services: string[]; /** Dictionary of amenities, each mapping to a dict of detail keys/values. */ amenities: Record>; /** Hours of operation by category. Defaults to `{ default: "9 AM - 5 PM" }`. */ hoursOfOperation: Record; /** Special instructions appended to the agent's instruction bullets. */ specialInstructions: string[]; /** * Create a ConciergeAgent for a venue with the given services, amenities, and hours. * @param config - Configuration including venue name, services, amenities, and optional hours/instructions/welcome. */ constructor(config: ConciergeConfig); /** Configure the concierge agent's prompt, hints, params, and global data. */ private setupConciergeAgent; private titleCase; /** Register the `check_availability` and `get_directions` SWAIG tools. */ protected defineTools(): void; /** * Process the interaction summary returned at the end of a call. * Logs structured summaries as JSON. Subclasses may override to persist or process. */ onSummary(summary: Record | null, _rawData: Record): void | Promise; } /** * Factory function that creates and returns a new ConciergeAgent. * @param config - Configuration for the concierge agent. * @returns A configured ConciergeAgent instance. */ export declare function createConciergeAgent(config: ConciergeConfig): ConciergeAgent; export default ConciergeAgent;