//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0021
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Media.Audio.idl";
import "Windows.Storage.Streams.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        interface IClosable;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Audio
        {
            runtimeclass AudioDeviceInputNode;

            runtimeclass AudioGraph;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IInputStream;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace ConversationalAgent
        {
            typedef enum ActivationSignalDetectionConfigurationCreationStatus ActivationSignalDetectionConfigurationCreationStatus;

            typedef enum ActivationSignalDetectionConfigurationRemovalResult ActivationSignalDetectionConfigurationRemovalResult;

            typedef enum ActivationSignalDetectionConfigurationSetModelDataResult ActivationSignalDetectionConfigurationSetModelDataResult;

            typedef enum ActivationSignalDetectionConfigurationStateChangeResult ActivationSignalDetectionConfigurationStateChangeResult;

            typedef enum ActivationSignalDetectionTrainingDataFormat ActivationSignalDetectionTrainingDataFormat;

            typedef enum ActivationSignalDetectorKind ActivationSignalDetectorKind;

            typedef enum ActivationSignalDetectorPowerState ActivationSignalDetectorPowerState;

            typedef enum ConversationalAgentActivationKind ConversationalAgentActivationKind;

            typedef enum ConversationalAgentActivationResult ConversationalAgentActivationResult;

            typedef enum ConversationalAgentSessionUpdateResponse ConversationalAgentSessionUpdateResponse;

            typedef enum ConversationalAgentState ConversationalAgentState;

            typedef enum ConversationalAgentSystemStateChangeType ConversationalAgentSystemStateChangeType;

            typedef enum ConversationalAgentVoiceActivationPrerequisiteKind ConversationalAgentVoiceActivationPrerequisiteKind;

            typedef enum DetectionConfigurationAvailabilityChangeKind DetectionConfigurationAvailabilityChangeKind;

            typedef enum DetectionConfigurationTrainingStatus DetectionConfigurationTrainingStatus;

            typedef enum SignalDetectorResourceKind SignalDetectorResourceKind;

            interface IActivationSignalDetectionConfiguration;

            interface IActivationSignalDetectionConfiguration2;

            interface IActivationSignalDetectionConfigurationCreationResult;

            interface IActivationSignalDetector;

            interface IActivationSignalDetector2;

            interface IConversationalAgentDetectorManager;

            interface IConversationalAgentDetectorManager2;

            interface IConversationalAgentDetectorManagerStatics;

            interface IConversationalAgentSession;

            interface IConversationalAgentSession2;

            interface IConversationalAgentSessionInterruptedEventArgs;

            interface IConversationalAgentSessionStatics;

            interface IConversationalAgentSignal;

            interface IConversationalAgentSignal2;

            interface IConversationalAgentSignalDetectedEventArgs;

            interface IConversationalAgentSystemStateChangedEventArgs;

            interface IDetectionConfigurationAvailabilityChangedEventArgs;

            interface IDetectionConfigurationAvailabilityInfo;

            interface IDetectionConfigurationAvailabilityInfo2;

            runtimeclass ActivationSignalDetectionConfiguration;

            runtimeclass ActivationSignalDetectionConfigurationCreationResult;

            runtimeclass ActivationSignalDetector;

            runtimeclass ConversationalAgentDetectorManager;

            runtimeclass ConversationalAgentSession;

            runtimeclass ConversationalAgentSessionInterruptedEventArgs;

            runtimeclass ConversationalAgentSignal;

            runtimeclass ConversationalAgentSignalDetectedEventArgs;

            runtimeclass ConversationalAgentSystemStateChangedEventArgs;

            runtimeclass DetectionConfigurationAvailabilityChangedEventArgs;

            runtimeclass DetectionConfigurationAvailabilityInfo;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace ApplicationModel
    {
        namespace ConversationalAgent
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration*>;

                interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionTrainingDataFormat>;

                interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector*>;

                interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectorPowerState>;

                interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentVoiceActivationPrerequisiteKind>;

                interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.ConversationalAgent.SignalDetectorResourceKind>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration*>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionTrainingDataFormat>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector*>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectorPowerState>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentVoiceActivationPrerequisiteKind>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.ConversationalAgent.SignalDetectorResourceKind>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionTrainingDataFormat>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectorPowerState>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentVoiceActivationPrerequisiteKind>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.SignalDetectorResourceKind>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration*>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationCreationResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationRemovalResult>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationSetModelDataResult>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationStateChangeResult>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector*>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentActivationResult>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession*>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSessionUpdateResponse>;

                interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.DetectionConfigurationTrainingStatus>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration*>*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector*>*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentVoiceActivationPrerequisiteKind>*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration*, Windows.ApplicationModel.ConversationalAgent.DetectionConfigurationAvailabilityChangedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession*, Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSessionInterruptedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession*, Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSignalDetectedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession*, Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSystemStateChangedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace ConversationalAgent
        {
            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            enum ActivationSignalDetectionConfigurationCreationStatus
            {
                Success                    = 0,
                SignalIdNotAvailable       = 1,
                ModelIdNotSupported        = 2,
                InvalidSignalId            = 3,
                InvalidModelId             = 4,
                InvalidDisplayName         = 5,
                ConfigurationAlreadyExists = 6,
                CreationNotSupported       = 7
            };

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            enum ActivationSignalDetectionConfigurationRemovalResult
            {
                Success             = 0,
                NotFound            = 1,
                CurrentlyEnabled    = 2,
                RemovalNotSupported = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            enum ActivationSignalDetectionConfigurationSetModelDataResult
            {
                Success                       = 0,
                EmptyModelData                = 1,
                UnsupportedFormat             = 2,
                ConfigurationCurrentlyEnabled = 3,
                InvalidData                   = 4,
                SetModelDataNotSupported      = 5,
                ConfigurationNotFound         = 6,
                UnknownError                  = 7
            };

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            enum ActivationSignalDetectionConfigurationStateChangeResult
            {
                Success               = 0,
                NoModelData           = 1,
                ConfigurationNotFound = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            enum ActivationSignalDetectionTrainingDataFormat
            {
                Voice8kHz8BitMono   = 0,
                Voice8kHz16BitMono  = 1,
                Voice16kHz8BitMono  = 2,
                Voice16kHz16BitMono = 3,
                VoiceOEMDefined     = 4,
                Audio44kHz8BitMono  = 5,
                Audio44kHz16BitMono = 6,
                Audio48kHz8BitMono  = 7,
                Audio48kHz16BitMono = 8,
                AudioOEMDefined     = 9,
                OtherOEMDefined     = 10
            };

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            enum ActivationSignalDetectorKind
            {
                AudioPattern  = 0,
                AudioImpulse  = 1,
                HardwareEvent = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            enum ActivationSignalDetectorPowerState
            {
                HighPower            = 0,
                ConnectedLowPower    = 1,
                DisconnectedLowPower = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            enum ConversationalAgentActivationKind
            {
                VoiceActivationPreview = 0,
                Foreground             = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            enum ConversationalAgentActivationResult
            {
                Success            = 0,
                AgentInactive      = 1,
                ScreenNotAvailable = 2,
                AgentInterrupted   = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            enum ConversationalAgentSessionUpdateResponse
            {
                Success = 0,
                Failed  = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            enum ConversationalAgentState
            {
                Inactive             = 0,
                Detecting            = 1,
                Listening            = 2,
                Working              = 3,
                Speaking             = 4,
                ListeningAndSpeaking = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            enum ConversationalAgentSystemStateChangeType
            {
                UserAuthentication          = 0,
                ScreenAvailability          = 1,
                IndicatorLightAvailability  = 2,
                VoiceActivationAvailability = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            enum ConversationalAgentVoiceActivationPrerequisiteKind
            {
                MicrophonePermission       = 0,
                KnownAgents                = 1,
                AgentAllowed               = 2,
                AppCapability              = 3,
                BackgroundTaskRegistration = 4,
                PolicyPermission           = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            enum DetectionConfigurationAvailabilityChangeKind
            {
                SystemResourceAccess = 0,
                Permission           = 1,
                LockScreenPermission = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            enum DetectionConfigurationTrainingStatus
            {
                Success                     = 0,
                FormatNotSupported          = 1,
                VoiceTooQuiet               = 2,
                VoiceTooLoud                = 3,
                VoiceTooFast                = 4,
                VoiceTooSlow                = 5,
                VoiceQualityProblem         = 6,
                TrainingSystemInternalError = 7,
                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                TrainingTimedOut            = 8,
                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                ConfigurationNotFound       = 9
            };

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            enum SignalDetectorResourceKind
            {
                ParallelModelSupport          = 0,
                ParallelModelSupportForAgent  = 1,
                ParallelSignalSupport         = 2,
                ParallelSignalSupportForAgent = 3,
                DisplayOffSupport             = 4,
                PluggedInPower                = 5,
                Detector                      = 6,
                SupportedSleepState           = 7,
                SupportedBatterySaverState    = 8,
                ScreenAvailability            = 9,
                InputHardware                 = 10,
                AcousticEchoCancellation      = 11,
                ModelIdSupport                = 12,
                DataChannel                   = 13
            };

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration)]
            [uuid(40D8BE16-5217-581C-9AB2-CE9B2F2E8E00)]
            interface IActivationSignalDetectionConfiguration : IInspectable
            {
                [propget] HRESULT SignalId([out] [retval] HSTRING* value);
                [propget] HRESULT ModelId([out] [retval] HSTRING* value);
                [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
                [propget] HRESULT IsActive([out] [retval] boolean* value);
                HRESULT SetEnabled([in] boolean value);
                HRESULT SetEnabledAsync([in] boolean value, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                [propget] HRESULT AvailabilityInfo([out] [retval] Windows.ApplicationModel.ConversationalAgent.DetectionConfigurationAvailabilityInfo** value);
                [eventadd] HRESULT AvailabilityChanged([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration*, Windows.ApplicationModel.ConversationalAgent.DetectionConfigurationAvailabilityChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT AvailabilityChanged([in] EventRegistrationToken token);
                HRESULT SetModelData([in] HSTRING dataType, [in] Windows.Storage.Streams.IInputStream* data);
                HRESULT SetModelDataAsync([in] HSTRING dataType, [in] Windows.Storage.Streams.IInputStream* data, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT GetModelDataType([out] [retval] HSTRING* result);
                HRESULT GetModelDataTypeAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                HRESULT GetModelData([out] [retval] Windows.Storage.Streams.IInputStream** result);
                HRESULT GetModelDataAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IInputStream*>** operation);
                HRESULT ClearModelData();
                HRESULT ClearModelDataAsync([out] [retval] Windows.Foundation.IAsyncAction** operation);
                [propget] HRESULT TrainingStepsCompleted([out] [retval] UINT32* value);
                [propget] HRESULT TrainingStepsRemaining([out] [retval] UINT32* value);
                [propget] HRESULT TrainingDataFormat([out] [retval] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionTrainingDataFormat* value);
                HRESULT ApplyTrainingData([in] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionTrainingDataFormat trainingDataFormat, [in] Windows.Storage.Streams.IInputStream* trainingData, [out] [retval] Windows.ApplicationModel.ConversationalAgent.DetectionConfigurationTrainingStatus* result);
                HRESULT ApplyTrainingDataAsync([in] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionTrainingDataFormat trainingDataFormat, [in] Windows.Storage.Streams.IInputStream* trainingData, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.DetectionConfigurationTrainingStatus>** operation);
                HRESULT ClearTrainingData();
                HRESULT ClearTrainingDataAsync([out] [retval] Windows.Foundation.IAsyncAction** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration)]
            [uuid(71D9B022-562C-57CE-A78B-8B4FF0145BAB)]
            interface IActivationSignalDetectionConfiguration2 : IInspectable
            {
                HRESULT SetModelDataWithResult([in] HSTRING dataType, [in] Windows.Storage.Streams.IInputStream* data, [out] [retval] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationSetModelDataResult* result);
                HRESULT SetModelDataWithResultAsync([in] HSTRING dataType, [in] Windows.Storage.Streams.IInputStream* data, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationSetModelDataResult>** operation);
                HRESULT SetEnabledWithResultAsync([in] boolean value, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationStateChangeResult>** operation);
                HRESULT SetEnabledWithResult([in] boolean value, [out] [retval] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationStateChangeResult* result);
                [propget] HRESULT TrainingStepCompletionMaxAllowedTime([out] [retval] UINT32* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationCreationResult)]
            [uuid(4C89BC1B-8D12-5E48-A71C-7F6BC1CD66E0)]
            interface IActivationSignalDetectionConfigurationCreationResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationCreationStatus* value);
                [propget] HRESULT Configuration([out] [retval] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector)]
            [uuid(B5BF345F-A4D0-5B2B-8E65-B3C55EE756FF)]
            interface IActivationSignalDetector : IInspectable
            {
                [propget] HRESULT ProviderId([out] [retval] HSTRING* value);
                [propget] HRESULT Kind([out] [retval] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectorKind* value);
                [propget] HRESULT CanCreateConfigurations([out] [retval] boolean* value);
                [propget] HRESULT SupportedModelDataTypes([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT SupportedTrainingDataFormats([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionTrainingDataFormat>** value);
                [propget] HRESULT SupportedPowerStates([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectorPowerState>** value);
                HRESULT GetSupportedModelIdsForSignalId([in] HSTRING signalId, [out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** result);
                HRESULT GetSupportedModelIdsForSignalIdAsync([in] HSTRING signalId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<HSTRING>*>** operation);
                HRESULT CreateConfiguration([in] HSTRING signalId, [in] HSTRING modelId, [in] HSTRING displayName);
                HRESULT CreateConfigurationAsync([in] HSTRING signalId, [in] HSTRING modelId, [in] HSTRING displayName, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT GetConfigurations([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration*>** result);
                HRESULT GetConfigurationsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration*>*>** operation);
                HRESULT GetConfiguration([in] HSTRING signalId, [in] HSTRING modelId, [out] [retval] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration** result);
                HRESULT GetConfigurationAsync([in] HSTRING signalId, [in] HSTRING modelId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfiguration*>** operation);
                HRESULT RemoveConfiguration([in] HSTRING signalId, [in] HSTRING modelId);
                HRESULT RemoveConfigurationAsync([in] HSTRING signalId, [in] HSTRING modelId, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector)]
            [uuid(C7E2490A-BAA5-59D2-85D1-BA42F7CF78C9)]
            interface IActivationSignalDetector2 : IInspectable
            {
                HRESULT GetAvailableModelIdsForSignalIdAsync([in] HSTRING signalId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<HSTRING>*>** operation);
                HRESULT GetAvailableModelIdsForSignalId([in] HSTRING signalId, [out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** result);
                HRESULT CreateConfigurationWithResultAsync([in] HSTRING signalId, [in] HSTRING modelId, [in] HSTRING displayName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationCreationResult*>** operation);
                HRESULT CreateConfigurationWithResult([in] HSTRING signalId, [in] HSTRING modelId, [in] HSTRING displayName, [out] [retval] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationCreationResult** result);
                HRESULT RemoveConfigurationWithResultAsync([in] HSTRING signalId, [in] HSTRING modelId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationRemovalResult>** operation);
                HRESULT RemoveConfigurationWithResult([in] HSTRING signalId, [in] HSTRING modelId, [out] [retval] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectionConfigurationRemovalResult* result);
                [propget] HRESULT DetectorId([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ConversationalAgentDetectorManager)]
            [uuid(DE94FBB0-597A-5DF8-8CFB-9DBB583BA3FF)]
            interface IConversationalAgentDetectorManager : IInspectable
            {
                HRESULT GetAllActivationSignalDetectors([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector*>** result);
                HRESULT GetAllActivationSignalDetectorsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector*>*>** operation);
                HRESULT GetActivationSignalDetectors([in] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectorKind kind, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector*>** result);
                HRESULT GetActivationSignalDetectorsAsync([in] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectorKind kind, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector*>*>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ConversationalAgentDetectorManager)]
            [uuid(84610F31-D7F3-52FE-9311-C9EB4E3EB30A)]
            interface IConversationalAgentDetectorManager2 : IInspectable
            {
                HRESULT GetActivationSignalDetectorFromId([in] HSTRING detectorId, [out] [retval] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector** result);
                HRESULT GetActivationSignalDetectorFromIdAsync([in] HSTRING detectorId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetector*>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ConversationalAgentDetectorManager)]
            [uuid(36A8D283-FA0E-5693-8489-0FB2F0AB40D3)]
            interface IConversationalAgentDetectorManagerStatics : IInspectable
            {
                [propget] HRESULT Default([out] [retval] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentDetectorManager** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession)]
            [uuid(DAAAE09A-B7BA-57E5-AD13-DF520F9B6FA7)]
            interface IConversationalAgentSession : IInspectable
            {
                [eventadd] HRESULT SessionInterrupted([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession*, Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSessionInterruptedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT SessionInterrupted([in] EventRegistrationToken token);
                [eventadd] HRESULT SignalDetected([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession*, Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSignalDetectedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT SignalDetected([in] EventRegistrationToken token);
                [eventadd] HRESULT SystemStateChanged([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession*, Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSystemStateChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT SystemStateChanged([in] EventRegistrationToken token);
                [propget] HRESULT AgentState([out] [retval] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentState* value);
                [propget] HRESULT Signal([out] [retval] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSignal** value);
                [propget] HRESULT IsIndicatorLightAvailable([out] [retval] boolean* value);
                [propget] HRESULT IsScreenAvailable([out] [retval] boolean* value);
                [propget] HRESULT IsUserAuthenticated([out] [retval] boolean* value);
                [propget] HRESULT IsVoiceActivationAvailable([out] [retval] boolean* value);
                [propget] HRESULT IsInterruptible([out] [retval] boolean* value);
                [propget] HRESULT IsInterrupted([out] [retval] boolean* value);
                HRESULT RequestInterruptibleAsync([in] boolean interruptible, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSessionUpdateResponse>** operation);
                HRESULT RequestInterruptible([in] boolean interruptible, [out] [retval] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSessionUpdateResponse* result);
                HRESULT RequestAgentStateChangeAsync([in] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentState state, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSessionUpdateResponse>** operation);
                HRESULT RequestAgentStateChange([in] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentState state, [out] [retval] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSessionUpdateResponse* result);
                HRESULT RequestForegroundActivationAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSessionUpdateResponse>** operation);
                HRESULT RequestForegroundActivation([out] [retval] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSessionUpdateResponse* result);
                HRESULT GetAudioClientAsync([out] [retval] Windows.Foundation.IAsyncOperation<IInspectable*>** operation);
                HRESULT GetAudioClient([out] [retval] IInspectable** result);
                HRESULT CreateAudioDeviceInputNodeAsync([in] Windows.Media.Audio.AudioGraph* graph, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.AudioDeviceInputNode*>** operation);
                HRESULT CreateAudioDeviceInputNode([in] Windows.Media.Audio.AudioGraph* graph, [out] [retval] Windows.Media.Audio.AudioDeviceInputNode** result);
                HRESULT GetAudioCaptureDeviceIdAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                HRESULT GetAudioCaptureDeviceId([out] [retval] HSTRING* result);
                HRESULT GetAudioRenderDeviceIdAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** operation);
                HRESULT GetAudioRenderDeviceId([out] [retval] HSTRING* result);
                HRESULT GetSignalModelIdAsync([out] [retval] Windows.Foundation.IAsyncOperation<UINT32>** operation);
                HRESULT GetSignalModelId([out] [retval] UINT32* result);
                HRESULT SetSignalModelIdAsync([in] UINT32 signalModelId, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                HRESULT SetSignalModelId([in] UINT32 signalModelId, [out] [retval] boolean* result);
                HRESULT GetSupportedSignalModelIdsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<UINT32>*>** operation);
                HRESULT GetSupportedSignalModelIds([out] [retval] Windows.Foundation.Collections.IVectorView<UINT32>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession)]
            [uuid(A7A9FBF9-AC78-57FF-9596-ACC7A1C9A607)]
            interface IConversationalAgentSession2 : IInspectable
            {
                HRESULT RequestActivationAsync([in] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentActivationKind activationKind, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentActivationResult>** operation);
                HRESULT RequestActivation([in] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentActivationKind activationKind, [out] [retval] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentActivationResult* result);
                HRESULT SetSupportLockScreenActivationAsync([in] boolean lockScreenActivationSupported, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT SetSupportLockScreenActivation([in] boolean lockScreenActivationSupported);
                HRESULT GetMissingPrerequisites([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentVoiceActivationPrerequisiteKind>** result);
                HRESULT GetMissingPrerequisitesAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentVoiceActivationPrerequisiteKind>*>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSessionInterruptedEventArgs)]
            [uuid(9766591F-F63D-5D3E-9BF2-BD0760552686)]
            interface IConversationalAgentSessionInterruptedEventArgs : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession)]
            [uuid(A005166E-E954-576E-BE04-11B8ED10F37B)]
            interface IConversationalAgentSessionStatics : IInspectable
            {
                HRESULT GetCurrentSessionAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession*>** operation);
                HRESULT GetCurrentSessionSync([out] [retval] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSession** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSignal)]
            [uuid(20ED25F7-B120-51F2-8603-265D6A47F232)]
            interface IConversationalAgentSignal : IInspectable
            {
                [propget] HRESULT IsSignalVerificationRequired([out] [retval] boolean* value);
                [propput] HRESULT IsSignalVerificationRequired([in] boolean value);
                [propget] HRESULT SignalId([out] [retval] HSTRING* value);
                [propput] HRESULT SignalId([in] HSTRING value);
                [propget] HRESULT SignalName([out] [retval] HSTRING* value);
                [propput] HRESULT SignalName([in] HSTRING value);
                [propget] HRESULT SignalContext([out] [retval] IInspectable** value);
                [propput] HRESULT SignalContext([in] IInspectable* value);
                [propget] HRESULT SignalStart([out] [retval] Windows.Foundation.TimeSpan* value);
                [propput] HRESULT SignalStart([in] Windows.Foundation.TimeSpan value);
                [propget] HRESULT SignalEnd([out] [retval] Windows.Foundation.TimeSpan* value);
                [propput] HRESULT SignalEnd([in] Windows.Foundation.TimeSpan value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSignal)]
            [uuid(D0CC7BA9-9A7B-5C34-880E-B6146C904ECB)]
            interface IConversationalAgentSignal2 : IInspectable
            {
                [propget] HRESULT DetectorId([out] [retval] HSTRING* value);
                [propget] HRESULT DetectorKind([out] [retval] Windows.ApplicationModel.ConversationalAgent.ActivationSignalDetectorKind* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSignalDetectedEventArgs)]
            [uuid(4D57EB8F-F88A-599B-91D3-D604876708BC)]
            interface IConversationalAgentSignalDetectedEventArgs : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSystemStateChangedEventArgs)]
            [uuid(1C2C6E3E-2785-59A7-8E71-38ADEEF79928)]
            interface IConversationalAgentSystemStateChangedEventArgs : IInspectable
            {
                [propget] HRESULT SystemStateChangeType([out] [retval] Windows.ApplicationModel.ConversationalAgent.ConversationalAgentSystemStateChangeType* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.DetectionConfigurationAvailabilityChangedEventArgs)]
            [uuid(5129C9FB-4BE8-5F14-AF2B-88D62B1B4462)]
            interface IDetectionConfigurationAvailabilityChangedEventArgs : IInspectable
            {
                [propget] HRESULT Kind([out] [retval] Windows.ApplicationModel.ConversationalAgent.DetectionConfigurationAvailabilityChangeKind* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.DetectionConfigurationAvailabilityInfo)]
            [uuid(B5AFFEB0-40F0-5398-B838-91979C2C6208)]
            interface IDetectionConfigurationAvailabilityInfo : IInspectable
            {
                [propget] HRESULT IsEnabled([out] [retval] boolean* value);
                [propget] HRESULT HasSystemResourceAccess([out] [retval] boolean* value);
                [propget] HRESULT HasPermission([out] [retval] boolean* value);
                [propget] HRESULT HasLockScreenPermission([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.ApplicationModel.ConversationalAgent.DetectionConfigurationAvailabilityInfo)]
            [uuid(30E06433-38B3-5C4B-84C3-62B6E685B2FF)]
            interface IDetectionConfigurationAvailabilityInfo2 : IInspectable
            {
                [propget] HRESULT UnavailableSystemResources([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.ConversationalAgent.SignalDetectorResourceKind>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            runtimeclass ActivationSignalDetectionConfiguration
            {
                [default] interface Windows.ApplicationModel.ConversationalAgent.IActivationSignalDetectionConfiguration;
                [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.ApplicationModel.ConversationalAgent.IActivationSignalDetectionConfiguration2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [marshaling_behavior(agile)]
            runtimeclass ActivationSignalDetectionConfigurationCreationResult
            {
                [default] interface Windows.ApplicationModel.ConversationalAgent.IActivationSignalDetectionConfigurationCreationResult;
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            runtimeclass ActivationSignalDetector
            {
                [default] interface Windows.ApplicationModel.ConversationalAgent.IActivationSignalDetector;
                [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.ApplicationModel.ConversationalAgent.IActivationSignalDetector2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.ConversationalAgent.IConversationalAgentDetectorManagerStatics, Windows.Foundation.UniversalApiContract, 10.0)]
            [threading(both)]
            runtimeclass ConversationalAgentDetectorManager
            {
                [default] interface Windows.ApplicationModel.ConversationalAgent.IConversationalAgentDetectorManager;
                [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.ApplicationModel.ConversationalAgent.IConversationalAgentDetectorManager2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.ConversationalAgent.IConversationalAgentSessionStatics, Windows.Foundation.UniversalApiContract, 8.0)]
            [threading(both)]
            runtimeclass ConversationalAgentSession
            {
                [default] interface Windows.ApplicationModel.ConversationalAgent.IConversationalAgentSession;
                [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.ApplicationModel.ConversationalAgent.IConversationalAgentSession2;
                interface Windows.Foundation.IClosable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            runtimeclass ConversationalAgentSessionInterruptedEventArgs
            {
                [default] interface Windows.ApplicationModel.ConversationalAgent.IConversationalAgentSessionInterruptedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            runtimeclass ConversationalAgentSignal
            {
                [default] interface Windows.ApplicationModel.ConversationalAgent.IConversationalAgentSignal;
                [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.ApplicationModel.ConversationalAgent.IConversationalAgentSignal2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            runtimeclass ConversationalAgentSignalDetectedEventArgs
            {
                [default] interface Windows.ApplicationModel.ConversationalAgent.IConversationalAgentSignalDetectedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            runtimeclass ConversationalAgentSystemStateChangedEventArgs
            {
                [default] interface Windows.ApplicationModel.ConversationalAgent.IConversationalAgentSystemStateChangedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            runtimeclass DetectionConfigurationAvailabilityChangedEventArgs
            {
                [default] interface Windows.ApplicationModel.ConversationalAgent.IDetectionConfigurationAvailabilityChangedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            runtimeclass DetectionConfigurationAvailabilityInfo
            {
                [default] interface Windows.ApplicationModel.ConversationalAgent.IDetectionConfigurationAvailabilityInfo;
                [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.ApplicationModel.ConversationalAgent.IDetectionConfigurationAvailabilityInfo2;
            }
        }
    }
}
