/**
 * @fileoverview Open Floor Protocol - Main entry point
 * Complete TypeScript implementation of the Open Floor Protocol specifications
 * @author Open Voice Interoperability Initiative
 * @version 0.0.1
 * @license Apache-2.0
 */
export type { SchemaOptions, IdentificationOptions, SupportedLayersOptions, CapabilityOptions, ManifestOptions, ConversantOptions, ConversationOptions, SenderOptions, ToOptions, BaseEventOptions, EnvelopeOptions, PayloadOptions, JsonSerializable, EventType, UtteranceEventOptions, ContextEventOptions, GetManifestsEventOptions, PublishManifestsEventOptions, RecommendScope, FloorReasonToken, AgentEventHandlers, ValidationResult } from './types';
export { parseIsoDuration, millisecondsToIsoDuration, generateUUID, resolveJsonPath, isValidUri, isValidUrl, isValidConfidence, isValidEncoding, deepClone, hasRequiredProperties, createValidationError } from './utils';
export { Span, Token, Feature, TextFeature, DialogEvent } from './dialog-event';
export type { DialogHistory } from './dialog-event';
export { Schema, Identification, SupportedLayers, Capability, Manifest, Conversant, Conversation, Sender, To, Event, Envelope, Payload } from './envelope';
export { UtteranceEvent, ContextEvent, InviteEvent, UninviteEvent, DeclineInviteEvent, ByeEvent, GetManifestsEvent, PublishManifestsEvent, RequestFloorEvent, GrantFloorEvent, RevokeFloorEvent, YieldFloorEvent, createEvent, isUtteranceEvent, isContextEvent, isInviteEvent, isUninviteEvent, isDeclineInviteEvent, isByeEvent, isGetManifestsEvent, isPublishManifestsEvent, isRequestFloorEvent, isGrantFloorEvent, isRevokeFloorEvent, isYieldFloorEvent } from './events';
export { OpenFloorAgent, BotAgent, FloorManager, ConvenerAgent } from './agents';
export { validateDialogEvent, validateManifest, validateEnvelope, validateDialogEventEnhanced, validateManifestEnhanced, validateEnvelopeEnhanced, EnhancedValidator } from './validation';
export declare const VERSION = "0.0.1";
/**
 * Library information
 */
export declare const OPEN_FLOOR_PROTOCOL: {
    readonly name: "@openfloor/protocol";
    readonly version: "0.0.1";
    readonly description: "Open Floor Protocol implementation for JavaScript/TypeScript";
    readonly specifications: {
        readonly envelope: "1.0.0";
        readonly dialogEvent: "1.0.2";
        readonly manifest: "1.0.0";
    };
    readonly repository: "https://github.com/open-voice-interoperability/openfloor-js";
    readonly documentation: "https://github.com/open-voice-interoperability/openfloor-js#readme";
};
/**
 * Convenience factory functions for common use cases
 */
/**
 * Creates a simple text utterance event
 * @param options - Utterance options
 * @returns UtteranceEvent instance
 *
 * @example
 * ```typescript
 * const utterance = createTextUtterance({
 *   speakerUri: 'tag:example.com,2025:user1',
 *   text: 'Hello world',
 *   to: { speakerUri: 'tag:example.com,2025:bot1' }
 * });
 * ```
 */
export declare function createTextUtterance(options: {
    speakerUri: string;
    text: string;
    to?: {
        speakerUri?: string;
        serviceUrl?: string;
        private?: boolean;
    };
    confidence?: number;
    lang?: string;
}): UtteranceEvent;
/**
 * Creates a basic agent manifest
 * @param options - Manifest options
 * @returns Manifest instance
 *
 * @example
 * ```typescript
 * const manifest = createBasicManifest({
 *   speakerUri: 'tag:example.com,2025:bot1',
 *   serviceUrl: 'https://example.com/bot',
 *   name: 'Assistant',
 *   organization: 'Example Corp',
 *   description: 'A helpful assistant',
 *   capabilities: ['chat', 'help']
 * });
 * ```
 */
export declare function createBasicManifest(options: {
    speakerUri: string;
    serviceUrl: string;
    name: string;
    organization: string;
    description: string;
    capabilities?: string[];
    department?: string;
    role?: string;
}): Manifest;
/**
 * Creates a simple conversation envelope
 * @param options - Envelope options
 * @returns Envelope instance
 *
 * @example
 * ```typescript
 * const envelope = createSimpleEnvelope({
 *   conversationId: 'conv:123',
 *   senderUri: 'tag:example.com,2025:bot1',
 *   events: [utteranceEvent]
 * });
 * ```
 */
export declare function createSimpleEnvelope(options: {
    conversationId?: string;
    senderUri: string;
    senderServiceUrl?: string;
    events?: Event[];
    schemaVersion?: string;
    schemaUrl?: string;
}): Envelope;
/**
 * Creates a payload with openFloor wrapper
 * @param envelope - Envelope to wrap
 * @returns Payload instance
 *
 * @example
 * ```typescript
 * const payload = createPayload(envelope);
 * console.log(payload.toJSON()); // {"openFloor": {...}}
 * ```
 */
export declare function createPayload(envelope: Envelope): Payload;
/**
 * Parses an Open Floor payload from JSON string
 * @param jsonString - JSON string to parse
 * @returns Parsed Payload instance
 * @throws Error if JSON is invalid
 *
 * @example
 * ```typescript
 * const jsonString = '{"openFloor": {...}}';
 * const payload = parsePayload(jsonString);
 * ```
 */
export declare function parsePayload(jsonString: string): Payload;
/**
 * Validates and parses an Open Floor payload
 * @param jsonString - JSON string to validate and parse
 * @returns Object containing validation result and parsed payload (if valid)
 *
 * @example
 * ```typescript
 * const result = validateAndParsePayload(jsonString);
 * if (result.valid) {
 *   console.log('Payload is valid:', result.payload);
 * } else {
 *   console.error('Validation errors:', result.errors);
 * }
 * ```
 */
export declare function validateAndParsePayload(jsonString: string): {
    valid: boolean;
    errors: string[];
    payload?: Payload;
};
import { UtteranceEvent, ContextEvent, InviteEvent, UninviteEvent, DeclineInviteEvent, ByeEvent, GetManifestsEvent, PublishManifestsEvent, RequestFloorEvent, GrantFloorEvent, RevokeFloorEvent, YieldFloorEvent } from './events';
import { Span, Token, Feature, TextFeature, DialogEvent } from './dialog-event';
import { Schema, Identification, SupportedLayers, Capability, Manifest, Conversant, Conversation, Sender, To, Event, Envelope, Payload } from './envelope';
import { OpenFloorAgent, BotAgent, FloorManager, ConvenerAgent } from './agents';
import { validateDialogEvent, validateManifest, validateEnvelope } from './validation.js';
/**
 * Default export with all main classes for convenient importing
 */
declare const _default: {
    readonly Span: typeof Span;
    readonly Token: typeof Token;
    readonly Feature: typeof Feature;
    readonly TextFeature: typeof TextFeature;
    readonly DialogEvent: typeof DialogEvent;
    readonly Schema: typeof Schema;
    readonly Identification: typeof Identification;
    readonly SupportedLayers: typeof SupportedLayers;
    readonly Capability: typeof Capability;
    readonly Manifest: typeof Manifest;
    readonly Conversant: typeof Conversant;
    readonly Conversation: typeof Conversation;
    readonly Sender: typeof Sender;
    readonly To: typeof To;
    readonly Event: typeof Event;
    readonly Envelope: typeof Envelope;
    readonly Payload: typeof Payload;
    readonly UtteranceEvent: typeof UtteranceEvent;
    readonly ContextEvent: typeof ContextEvent;
    readonly InviteEvent: typeof InviteEvent;
    readonly UninviteEvent: typeof UninviteEvent;
    readonly DeclineInviteEvent: typeof DeclineInviteEvent;
    readonly ByeEvent: typeof ByeEvent;
    readonly GetManifestsEvent: typeof GetManifestsEvent;
    readonly PublishManifestsEvent: typeof PublishManifestsEvent;
    readonly RequestFloorEvent: typeof RequestFloorEvent;
    readonly GrantFloorEvent: typeof GrantFloorEvent;
    readonly RevokeFloorEvent: typeof RevokeFloorEvent;
    readonly YieldFloorEvent: typeof YieldFloorEvent;
    readonly OpenFloorAgent: typeof OpenFloorAgent;
    readonly BotAgent: typeof BotAgent;
    readonly FloorManager: typeof FloorManager;
    readonly ConvenerAgent: typeof ConvenerAgent;
    readonly createTextUtterance: typeof createTextUtterance;
    readonly createBasicManifest: typeof createBasicManifest;
    readonly createSimpleEnvelope: typeof createSimpleEnvelope;
    readonly createPayload: typeof createPayload;
    readonly parsePayload: typeof parsePayload;
    readonly validateAndParsePayload: typeof validateAndParsePayload;
    readonly validateDialogEvent: typeof validateDialogEvent;
    readonly validateManifest: typeof validateManifest;
    readonly validateEnvelope: typeof validateEnvelope;
    readonly VERSION: "0.0.1";
    readonly OPEN_FLOOR_PROTOCOL: {
        readonly name: "@openfloor/protocol";
        readonly version: "0.0.1";
        readonly description: "Open Floor Protocol implementation for JavaScript/TypeScript";
        readonly specifications: {
            readonly envelope: "1.0.0";
            readonly dialogEvent: "1.0.2";
            readonly manifest: "1.0.0";
        };
        readonly repository: "https://github.com/open-voice-interoperability/openfloor-js";
        readonly documentation: "https://github.com/open-voice-interoperability/openfloor-js#readme";
    };
};
export default _default;
//# sourceMappingURL=index.d.ts.map