import {z} from 'zod' export type ReportingStatsOperatorsEnum = 'one-of' | 'not-one-of' | 'all-of' | 'afterDate' | 'beforeDate' | 'set' | 'inDateRange' | 'contains'; export type TicketsClosedFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type BaseReportingStatsCustomFilterValueItem = {custom_field_id: number, operator: 'one-of' | 'not-one-of', values: Array | Array}; export type BaseReportingStatsCustomFilterItem = {member: 'customFields', values: Array}; export type BaseReportingStatsRepeatableFilterItemValue = {operator: 'one-of' | 'not-one-of' | 'all-of', values: Array | Array}; export type BaseReportingStatsRepeatableFilterItem = {member: 'tags', values: Array}; export type CubeTimeDimensionGranularitiesEnum = 'day' | 'week' | 'month' | 'hour'; export type TicketsClosedTimeDimension = {dimension: 'closedDatetime' | 'createdDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type TicketsClosedQuery = {scope: 'tickets-closed', measures?: Array<'ticketCount'> | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId' | 'storeIntegrationId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type TicketsCreatedFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type TicketsCreatedTimeDimension = {dimension: 'createdDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type TicketsCreatedQuery = {scope: 'tickets-created', measures?: Array<'ticketCount'> | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId' | 'storeIntegrationId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type TicketsOpenFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type TicketsOpenTimeDimension = {dimension: 'createdDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type TicketsOpenQuery = {scope: 'tickets-open', measures?: Array<'ticketCount'> | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type TicketsRepliedFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type TicketsRepliedTimeDimension = {dimension: 'createdDatetime' | 'sentDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type TicketsRepliedQuery = {scope: 'tickets-replied', measures?: Array<'ticketCount'> | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type OneTouchTicketsFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type OneTouchTicketsTimeDimension = {dimension: 'createdDatetime' | 'closedDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type OneTouchTicketsQuery = {scope: 'one-touch-tickets', measures?: Array<'ticketCount'> | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type ZeroTouchTicketsFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type ZeroTouchTicketsTimeDimension = {dimension: 'createdDatetime' | 'closedDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type ZeroTouchTicketsQuery = {scope: 'zero-touch-tickets', measures?: Array<'ticketCount'> | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId' | 'storeIntegrationId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type SatisfactionSurveysFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type SatisfactionSurveysTimeDimension = {dimension: 'createdDatetime' | 'sentDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type SatisfactionSurveysQuery = {scope: 'satisfaction-surveys', measures?: (Array<'scoredSurveysCount' | 'averageSurveyScore' | 'satisfactionScore' | 'responseRate' | 'sentSurveysCount'>) | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'surveyScore' | 'storeId' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type ResolutionTimeFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type ResolutionTimeTimeDimension = {dimension: 'createdDatetime' | 'periodStart' | 'closedDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type ResolutionTimeQuery = {scope: 'resolution-time', measures?: (Array<'medianResolutionTime' | 'averageResolutionTime'>) | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'resolutionTime' | 'storeId' | 'storeIntegrationId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type MessagesSentFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type MessagesSentTimeDimension = {dimension: 'sentDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type MessagesSentQuery = {scope: 'messages-sent', measures?: Array<'messagesCount'> | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type TicketMacroUsageFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'agentId' | 'teamId' | 'integrationId' | 'storeId' | 'storeIntegrationId' | 'score' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'macroId' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type ReportingStatsTimeDimensionsEnum = 'closedDatetime' | 'createdDatetime' | 'sentDatetime' | 'updatedDatetime' | 'firstAgentMessageDatetime' | 'timestamp' | 'anchorDatetime' | 'queuedDate' | 'periodStart' | 'scoredDatetime' | 'eventDatetime' | 'billingTimestamp'; export type BaseReportingStatsTimeDimension = {dimension: ReportingStatsTimeDimensionsEnum, granularity: CubeTimeDimensionGranularitiesEnum}; export type TicketMacroUsageQuery = {scope: 'ticket-macro-usage', measures?: (Array<'ticketCount' | 'ticketShare'>) | undefined, dimensions?: (Array<'macroId' | 'macroName' | 'ticketId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type FirstResponseTimeFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type FirstResponseTimeTimeDimension = {dimension: 'createdDatetime' | 'firstAgentMessageDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type FirstResponseTimeQuery = {scope: 'first-response-time', measures?: (Array<'medianFirstResponseTime' | 'averageFirstResponseTime'>) | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'firstResponseTime' | 'storeId' | 'storeIntegrationId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type HumanFirstResponseTimeFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type HumanFirstResponseTimeTimeDimension = {dimension: 'createdDatetime' | 'firstAgentMessageDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type HumanFirstResponseTimeQuery = {scope: 'human-first-response-time', measures?: (Array<'medianFirstResponseTime' | 'averageFirstResponseTime'>) | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'firstResponseTime' | 'storeId' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type ResponseTimeFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type ResponseTimeTimeDimension = {dimension: 'createdDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type ResponseTimeQuery = {scope: 'response-time', measures?: Array<'medianResponseTime'> | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type MessagesPerTicketFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type MessagesPerTicketTimeDimension = {dimension: 'createdDatetime' | 'closedDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type MessagesPerTicketQuery = {scope: 'messages-per-ticket', measures?: Array<'averageMessagesCount'> | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'messagesCount' | 'storeId' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type TicketHandleTimeFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type TicketHandleTimeTimeDimension = {dimension: 'createdDatetime' | 'closedDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type TicketHandleTimeQuery = {scope: 'ticket-handle-time', measures?: (Array<'averageHandleTime' | 'handleTime'>) | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'handleTime' | 'storeId' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type OnlineTimeFilterItem = {member: 'agentId' | 'periodStart' | 'periodEnd' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type OnlineTimeQuery = {scope: 'online-time', measures?: Array<'onlineTime'> | undefined, dimensions?: Array<'agentId'> | undefined, filters: Array, timezone: string, order?: Array> | undefined}; export type TagsFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'tagId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'createdDatetime' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type TagsTimeDimension = {dimension: 'timestamp', granularity: CubeTimeDimensionGranularitiesEnum}; export type TagsQuery = {scope: 'tags', measures?: Array<'ticketCount'> | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId' | 'tagId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type TicketFieldsFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'integrationId' | 'storeId' | 'customFieldId' | 'productId' | 'createdDatetime' | 'customFieldValue' | 'customFieldValueString' | 'integrationChannelPair' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'score' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type TicketFieldsTimeDimension = {dimension: 'updatedDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type TicketFieldsQuery = {scope: 'ticket-fields', measures?: Array<'ticketCount'> | undefined, dimensions?: (Array<'ticketId' | 'customFieldValue'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AutoQAFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'status' | 'ticketQAScorerUserId' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3' | 'hasScore' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AutoQATimeDimension = {dimension: 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type AutoQAQuery = {scope: 'auto-qa', measures?: (Array<'averageResolutionCompletenessScore' | 'averageCommunicationSkillsScore' | 'averageLanguageProficiencyScore' | 'averageAccuracyScore' | 'averageEfficiencyScore' | 'averageInternalComplianceScore' | 'averageBrandVoiceScore' | 'ticketCount'>) | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId' | 'storeIntegrationId' | 'ticketQAScorerUserId' | 'ticketFields' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type MessagesReceivedFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'storeIntegrationId' | 'agentIdFromTeamId' | 'aiAgentFilter', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type MessagesReceivedTimeDimension = {dimension: 'sentDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type MessagesReceivedQuery = {scope: 'messages-received', measures?: Array<'messagesCount'> | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type WorkloadTicketsFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'score' | 'integrationId' | 'communicationSkills' | 'languageProficiency' | 'resolutionCompleteness' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'storeId' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type WorkloadTicketsQuery = {scope: 'workload-tickets', measures?: Array<'ticketCount'> | undefined, dimensions?: (Array<'ticketId' | 'channel'>) | undefined, filters: Array, timezone: string, order?: Array> | undefined}; export type VoiceCallsFilterItem = {member: 'periodStart' | 'periodEnd' | 'integrationId' | 'agentId' | 'queueId' | 'isDuringBusinessHours' | 'callTerminationStatus' | 'callDirection' | 'storeId' | 'displayStatus' | 'callSlaStatus' | 'talkTime' | 'waitTime' | 'storeIntegrationId' | 'isAnsweredByAgent' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type VoiceCallsQuery = {scope: 'voice-calls', measures?: (Array<'voiceCallsCount' | 'averageTalkTimeInSeconds' | 'averageWaitTimeInSeconds' | 'inboundCallsCount' | 'outboundCallsCount' | 'inboundAnsweredCallsCount' | 'inboundUnansweredCallsCount' | 'inboundMissedCallsCount' | 'inboundAbandonedCallsCount' | 'inboundCancelledCallsCount' | 'inboundCallbackRequestedCallsCount' | 'abandonedRate' | 'callbackRequestedRate' | 'cancelledRate' | 'missedRate' | 'slaAchievementRate' | 'breachedExposures' | 'achievedExposures'>) | undefined, dimensions?: (Array<'agentId' | 'filteringAgentId' | 'integrationId' | 'queueId' | 'customerId' | 'createdDatetime' | 'status' | 'duration' | 'source' | 'destination' | 'callDirection' | 'talkTime' | 'waitTime' | 'voicemailAvailable' | 'voicemailUrl' | 'callRecordingAvailable' | 'callRecordingUrl' | 'displayStatus' | 'queueName' | 'ticketId' | 'isPossibleSpam' | 'callSlaStatus' | 'callSlaStatusLabel' | 'storeIntegrationId'>) | undefined, filters: Array, timezone: string, order?: Array> | undefined}; export type VoiceAgentEventsFilterItem = {member: 'periodStart' | 'periodEnd' | 'integrationId' | 'agentId' | 'transferredCalls' | 'declinedCalls' | 'storeId' | 'storeIntegrationId' | 'queueId' | 'isDuringBusinessHours' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type VoiceAgentEventsQuery = {scope: 'voice-agent-events', measures?: Array<'voiceCallsCount'> | undefined, dimensions?: (Array<'agentId' | 'integrationId' | 'createdDatetime' | 'ticketId' | 'status' | 'transferType' | 'transferTargetAgentId' | 'transferTargetExternalNumber' | 'transferTargetQueueId' | 'assignedAgentId' | 'customerId' | 'duration' | 'source' | 'destination' | 'callDirection' | 'voicemailAvailable' | 'voicemailUrl' | 'callRecordingAvailable' | 'callRecordingUrl' | 'displayStatus' | 'storeIntegrationId'>) | undefined, filters: Array, timezone: string, order?: Array> | undefined}; export type TicketSlaFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'integrationId' | 'storeId' | 'storeIntegrationId' | 'status' | 'slaPolicyUuid' | 'score' | 'resolutionCompleteness' | 'communicationSkills' | 'languageProficiency' | 'accuracy' | 'efficiency' | 'internalCompliance' | 'brandVoice' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type TicketSlaTimeDimension = {dimension: 'anchorDatetime' | 'periodStart' | 'createdDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type TicketSlaQuery = {scope: 'ticket-sla', measures?: (Array<'ticketCount' | 'slaAchievementRate'>) | undefined, dimensions?: (Array<'status' | 'channel' | 'storeId' | 'storeIntegrationId' | 'slaPolicyUuid' | 'slaDelta' | 'slaPolicyMetricName' | 'slaPolicyMetricStatus' | 'ticketId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type KnowledgeInsightsFilterItem = {member: 'periodStart' | 'periodEnd' | 'storeId' | 'resourceSourceId' | 'resourceSourceSetId' | 'resourceVersion' | 'customFieldId' | 'customFieldValueString', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type KnowledgeInsightsQuery = {scope: 'knowledge-insights', measures?: (Array<'averageSurveyScore' | 'ticketCount' | 'interactionsCount'>) | undefined, dimensions?: (Array<'ticketId' | 'resourceType' | 'resourceSourceId' | 'resourceSourceSetId' | 'resourceVersion' | 'customFieldTop2LevelsValue' | 'createdDatetime'>) | undefined, filters: Array, timezone: string, order?: Array> | undefined}; export type VoiceCallsSummaryFilterItem = {member: 'periodStart' | 'periodEnd' | 'integrationId' | 'agentId' | 'queueId' | 'isDuringBusinessHours' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type VoiceCallsSummaryQuery = {scope: 'voice-calls-summary', measures?: (Array<'inboundVoiceCallsCount' | 'outboundVoiceCallsCount' | 'answeredVoiceCallsCount' | 'cancelledVoiceCallsCount' | 'abandonedVoiceCallsCount' | 'missedVoiceCallsCount' | 'unansweredVoiceCallsCount' | 'callbackRequestedVoiceCallsCount' | 'averageTalkTimeInSeconds' | 'averageWaitTimeInSeconds' | 'slaAchievementRate'>) | undefined, filters: Array, timezone: string}; export type VoiceQueueExposureFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'integrationId' | 'queueId' | 'callSlaStatus' | 'storeId' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type VoiceQueueExposureTimeDimension = {dimension: 'queuedDate', granularity: CubeTimeDimensionGranularitiesEnum}; export type VoiceQueueExposureQuery = {scope: 'voice-queue-exposure', measures?: (Array<'slaAchievementRate' | 'breachedExposures' | 'achievedExposures' | 'totalExposures'>) | undefined, dimensions?: (Array<'agentId' | 'integrationId' | 'queueId' | 'queueName' | 'callSlaStatusLabel'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type UserAvailabilityTrackingFilterItem = {member: 'agentId' | 'periodStart' | 'periodEnd' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type UserAvailabilityTrackingQuery = {scope: 'user-availability-tracking', measures?: (Array<'totalDurationSeconds' | 'onlineDurationSeconds' | 'offlineDurationSeconds' | 'intervalCount'>) | undefined, dimensions?: (Array<'agentId' | 'statusName'>) | undefined, filters: Array, timezone: string, order?: Array> | undefined}; export type HelpCenterFilterItem = {member: 'periodStart' | 'periodEnd' | 'helpCenterId' | 'helpCenterEventType' | 'localeCodes' | 'searchQuery' | 'isSearchRequestWithClick' | 'searchResultCount' | 'articleId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type HelpCenterTimeDimension = {dimension: 'timestamp', granularity: CubeTimeDimensionGranularitiesEnum}; export type HelpCenterQuery = {scope: 'help-center', measures?: (Array<'articleViewCount' | 'searchRequestedCount' | 'articleCount' | 'searchRequestedQueryCount' | 'searchArticlesClickedCount' | 'uniqueSearchArticlesClickedCount' | 'uniqueSearchQueryCount' | 'clickThroughRate'>) | undefined, dimensions?: (Array<'helpCenterId' | 'helpCenterEventType' | 'localeCodes' | 'articleId' | 'articleTitle' | 'articleSlug' | 'searchQuery' | 'searchResultRange'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AiSalesAgentOrdersPerformanceFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'engagementType' | 'currency' | 'orderId' | 'attributionWindowDays', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AiSalesAgentOrdersPerformanceTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AiSalesAgentOrdersPerformanceQuery = {scope: 'ai-sales-agent-orders-performance', measures?: (Array<'ordersInfluencedCount' | 'totalSalesAmount' | 'totalSalesAmountUsd' | 'averageOrderValue' | 'averageOrderValueUsd' | 'medianOrderValue' | 'medianOrderValueUsd' | 'averagePurchaseTime' | 'medianPurchaseTime'>) | undefined, dimensions?: (Array<'channel' | 'currency' | 'storeIntegrationId' | 'engagementType' | 'ticketId' | 'orderId' | 'totalAmount' | 'purchaseTime' | 'productId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AiSalesAgentDiscountsFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'engagementType' | 'currency' | 'attributionWindowDays', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AiSalesAgentDiscountsTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AiSalesAgentDiscountsQuery = {scope: 'ai-sales-agent-discounts', measures?: (Array<'offeredDiscountCodesCount' | 'appliedDiscountCodesCount' | 'averageDiscountAmount' | 'averageDiscountUsd' | 'medianDiscountAmount' | 'discountUsage'>) | undefined, dimensions?: (Array<'channel' | 'currency' | 'storeIntegrationId' | 'engagementType' | 'ticketId' | 'discountAmount' | 'discountCodeOffered' | 'discountCodeUsed' | 'productId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AiSalesAgentActivityFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'engagementType' | 'productId' | 'attributionWindowDays', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AiSalesAgentActivityTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AiSalesAgentActivityQuery = {scope: 'ai-sales-agent-activity', measures?: (Array<'revenuePerInteraction' | 'recommendedProductCount' | 'timesRecommended'>) | undefined, dimensions?: (Array<'channel' | 'storeIntegrationId' | 'ticketId' | 'engagementType' | 'attributedRevenue' | 'productRecommended' | 'productId' | 'productVariantIds' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type OverallAutomationRateFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'automationFeatureType' | 'aiAgentRole', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type OverallAutomationRateTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type OverallAutomationRateQuery = {scope: 'overall-automation-rate', measures?: Array<'automationRate'> | undefined, dimensions?: (Array<'automationFeatureType' | 'channel' | 'storeIntegrationId' | 'aiAgentRole' | 'orderManagementType' | 'flowId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AIAgentAutomatedInteractionsFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'aiAgentRole' | 'engagementType', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AIAgentAutomatedInteractionsTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AIAgentAutomatedInteractionsQuery = {scope: 'ai-agent-automated-interactions', measures?: Array<'automatedInteractionsCount'> | undefined, dimensions?: (Array<'aiAgentRole' | 'engagementType' | 'channel' | 'storeIntegrationId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3' | 'ticketId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type OverallAutomatedInteractionsFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'automationFeatureType', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type OverallAutomatedInteractionsTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type OverallAutomatedInteractionsQuery = {scope: 'overall-automated-interactions', measures?: Array<'automatedInteractionsCount'> | undefined, dimensions?: (Array<'automationFeatureType' | 'orderManagementType' | 'flowId' | 'channel' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type HandoverInteractionsFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'automationFeatureType' | 'aiAgentRole' | 'engagementType' | 'resourceSourceId' | 'resourceSourceSetId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type HandoverInteractionsTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type HandoverInteractionsQuery = {scope: 'handover-interactions', measures?: Array<'handoverInteractionsCount'> | undefined, dimensions?: (Array<'automationFeatureType' | 'aiAgentRole' | 'engagementType' | 'channel' | 'storeIntegrationId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3' | 'ticketId' | 'orderManagementType' | 'resourceSourceId' | 'resourceSourceSetId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AiSalesAgentBuyThroughRateFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'engagementType' | 'attributionWindowDays', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AiSalesAgentBuyThroughRateTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AiSalesAgentBuyThroughRateQuery = {scope: 'ai-sales-agent-buy-through-rate', measures?: (Array<'buyThroughRate' | 'productBuyThroughRate'>) | undefined, dimensions?: (Array<'channel' | 'storeIntegrationId' | 'engagementType' | 'ticketId' | 'productRecommended' | 'boughtProducts' | 'productId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AiSalesAgentConversionRateFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'engagementType' | 'attributionWindowDays', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AiSalesAgentConversionRateTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AiSalesAgentConversionRateQuery = {scope: 'ai-sales-agent-conversion-rate', measures?: Array<'conversionRate'> | undefined, dimensions?: (Array<'channel' | 'storeIntegrationId' | 'engagementType' | 'ticketId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AiSalesAgentContributionToTotalSalesFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'engagementType' | 'attributionWindowDays', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AiSalesAgentContributionToTotalSalesTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AiSalesAgentContributionToTotalSalesQuery = {scope: 'ai-sales-agent-contribution-to-total-sales', measures?: Array<'contributionToTotalSales'> | undefined, dimensions?: (Array<'storeIntegrationId' | 'orderId' | 'currency'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AiAgentCoverageRateFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'aiAgentRole' | 'storeIntegrationId' | 'engagementType' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AiAgentCoverageRateTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AiAgentCoverageRateQuery = {scope: 'ai-agent-coverage-rate', measures?: Array<'coverageRate'> | undefined, dimensions?: (Array<'channel' | 'ticketId' | 'aiAgentRole' | 'storeIntegrationId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AiAgentHandoverRateFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'aiAgentRole' | 'storeIntegrationId' | 'engagementType' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AiAgentHandoverRateTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AiAgentHandoverRateQuery = {scope: 'ai-agent-handover-rate', measures?: (Array<'handoverRate' | 'coveredTicketsCount' | 'handoverTicketsCount'>) | undefined, dimensions?: (Array<'channel' | 'ticketId' | 'aiAgentRole' | 'storeIntegrationId' | 'engagementType' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AiAgentSuccessRateFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'aiAgentRole' | 'storeIntegrationId' | 'engagementType' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3' | 'resourceSourceId' | 'resourceSourceSetId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AiAgentSuccessRateTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AiAgentSuccessRateQuery = {scope: 'ai-agent-success-rate', measures?: (Array<'successRate' | 'aiAgentTicketVolume'>) | undefined, dimensions?: (Array<'channel' | 'ticketId' | 'aiAgentRole' | 'storeIntegrationId' | 'engagementType' | 'productId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3' | 'resourceSourceId' | 'resourceSourceSetId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type OverallTimeSavedByAgentFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'automationFeatureType', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type OverallTimeSavedByAgentTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type OverallTimeSavedByAgentQuery = {scope: 'overall-time-saved-by-agent', measures?: (Array<'averageTimeSavedByAgent' | 'medianTimeSavedByAgent'>) | undefined, dimensions?: (Array<'channel' | 'automationFeatureType' | 'orderManagementType' | 'flowId' | 'storeIntegrationId' | 'ticketId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type TimeSavedByAiAgentFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'aiAgentRole' | 'engagementType', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type TimeSavedByAiAgentTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type TimeSavedByAiAgentQuery = {scope: 'ai-agent-time-saved', measures?: (Array<'averageTimeSavedByAgent' | 'medianTimeSavedByAgent'>) | undefined, dimensions?: (Array<'channel' | 'aiAgentRole' | 'storeIntegrationId' | 'ticketId' | 'engagementType' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AiAgentTicketFieldsFilterItem = {member: 'periodStart' | 'periodEnd' | 'aiAgentRole' | 'channel' | 'storeIntegrationId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AiAgentTicketFieldsTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AiAgentTicketFieldsQuery = {scope: 'ai-agent-ticket-fields', measures?: Array<'ticketCount'> | undefined, dimensions?: (Array<'aiAgentRole' | 'aiOutcomeCustomField' | 'channel' | 'storeIntegrationId' | 'ticketId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type OverallDecreaseInResolutionTimeFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'automationFeatureType', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type OverallDecreaseInResolutionTimeTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type OverallDecreaseInResolutionTimeQuery = {scope: 'overall-decrease-in-resolution-time', measures?: (Array<'averageDecreaseInResolutionTime' | 'medianDecreaseInResolutionTime'>) | undefined, dimensions?: (Array<'channel' | 'automationFeatureType' | 'orderManagementType' | 'flowId' | 'storeIntegrationId' | 'ticketId' | 'resolutionTime'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AIAgentDecreaseInResolutionTimeFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'aiAgentRole', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AIAgentDecreaseInResolutionTimeTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AIAgentDecreaseInResolutionTimeQuery = {scope: 'ai-agent-decrease-in-resolution-time', measures?: (Array<'averageDecreaseInResolutionTime' | 'medianDecreaseInResolutionTime'>) | undefined, dimensions?: (Array<'channel' | 'aiAgentRole' | 'storeIntegrationId' | 'ticketId' | 'resolutionTime' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type FlowDatasetFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type FlowDatasetTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type FlowDatasetQuery = {scope: 'flow-dataset', measures?: (Array<'dropOffCount' | 'handoverInteractionsCount'>) | undefined, dimensions?: (Array<'channel' | 'flowId' | 'storeIntegrationId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AiAgentCsatFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'aiAgentRole' | 'storeIntegrationId' | 'engagementType' | 'resourceSourceId' | 'resourceSourceSetId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AiAgentCsatTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AiAgentCsatQuery = {scope: 'ai-agent-csat', measures?: (Array<'averageCSAT' | 'medianCSAT'>) | undefined, dimensions?: (Array<'channel' | 'ticketId' | 'aiAgentRole' | 'storeIntegrationId' | 'engagementType' | 'surveyScore' | 'resourceSourceId' | 'resourceSourceSetId' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type OverallDecreaseInFirstResponseTimeFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'storeIntegrationId' | 'automationFeatureType', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type OverallDecreaseInFirstResponseTimeTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type OverallDecreaseInFirstResponseTimeQuery = {scope: 'overall-decrease-in-first-response-time', measures?: (Array<'averageDecreaseInFirstResponseTime' | 'medianDecreaseInFirstResponseTime'>) | undefined, dimensions?: (Array<'channel' | 'automationFeatureType' | 'orderManagementType' | 'flowId' | 'storeIntegrationId' | 'ticketId' | 'firstResponseTime'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type AIAgentDecreaseInFirstResponseTimeFilterItem = {member: 'periodStart' | 'periodEnd' | 'channel' | 'aiAgentRole' | 'engagementType' | 'storeIntegrationId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type AIAgentDecreaseInFirstResponseTimeTimeDimension = {dimension: 'eventDatetime', granularity: CubeTimeDimensionGranularitiesEnum}; export type AIAgentDecreaseInFirstResponseTimeQuery = {scope: 'ai-agent-decrease-in-first-response-time', measures?: (Array<'averageDecreaseInFirstResponseTime' | 'medianDecreaseInFirstResponseTime'>) | undefined, dimensions?: (Array<'channel' | 'aiAgentRole' | 'engagementType' | 'storeIntegrationId' | 'ticketId' | 'firstResponseTime' | 'aiIntentCustomField' | 'aiIntentCustomFieldL1' | 'aiIntentCustomFieldL2' | 'aiIntentCustomFieldL3'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type TicketStatusBreakdownFilterItem = {member: 'periodStart' | 'periodEnd' | 'agentId' | 'teamId' | 'channel' | 'integrationId' | 'storeId' | 'agentIdFromTeamId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type TicketStatusBreakdownTimeDimension = {dimension: 'createdDatetime' | 'periodStart', granularity: CubeTimeDimensionGranularitiesEnum}; export type TicketStatusBreakdownQuery = {scope: 'ticket-status-breakdown', measures?: (Array<'total' | 'inbound' | 'outbound' | 'spam' | 'inboundDeleted' | 'inboundTrashed' | 'inboundReopened' | 'inboundClosed' | 'inboundOpen' | 'outboundDeleted' | 'outboundTrashed' | 'outboundReopened' | 'outboundClosed' | 'outboundOpen'>) | undefined, dimensions?: (Array<'ticketId' | 'agentId' | 'channel' | 'integrationId' | 'storeId'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type BillingUsageFilterItem = {member: 'periodStart' | 'periodEnd' | 'billingProduct' | 'billingId', operator: ReportingStatsOperatorsEnum, values: Array | Array}; export type BillingUsageTimeDimension = {dimension: 'billingTimestamp', granularity: CubeTimeDimensionGranularitiesEnum}; export type BillingUsageQuery = {scope: 'billing-usage', measures?: (Array<'smsUsageCount' | 'voiceUsageCount' | 'convertUsageCount' | 'helpdeskUsageCount' | 'aiAgentUsageCount' | 'gaiaUsageCount'>) | undefined, dimensions?: (Array<'billingId' | 'billingProduct'>) | undefined, filters: Array, time_dimensions?: Array | undefined, timezone: string, order?: Array> | undefined}; export type ReportingStats = {query: TicketsClosedQuery | TicketsCreatedQuery | TicketsOpenQuery | TicketsRepliedQuery | OneTouchTicketsQuery | ZeroTouchTicketsQuery | SatisfactionSurveysQuery | ResolutionTimeQuery | MessagesSentQuery | TicketMacroUsageQuery | FirstResponseTimeQuery | HumanFirstResponseTimeQuery | ResponseTimeQuery | MessagesPerTicketQuery | TicketHandleTimeQuery | OnlineTimeQuery | TagsQuery | TicketFieldsQuery | AutoQAQuery | MessagesReceivedQuery | WorkloadTicketsQuery | VoiceCallsQuery | VoiceAgentEventsQuery | TicketSlaQuery | KnowledgeInsightsQuery | VoiceCallsSummaryQuery | VoiceQueueExposureQuery | UserAvailabilityTrackingQuery | HelpCenterQuery | AiSalesAgentOrdersPerformanceQuery | AiSalesAgentDiscountsQuery | AiSalesAgentActivityQuery | OverallAutomationRateQuery | AIAgentAutomatedInteractionsQuery | OverallAutomatedInteractionsQuery | HandoverInteractionsQuery | AiSalesAgentBuyThroughRateQuery | AiSalesAgentConversionRateQuery | AiSalesAgentContributionToTotalSalesQuery | AiAgentCoverageRateQuery | AiAgentHandoverRateQuery | AiAgentSuccessRateQuery | OverallTimeSavedByAgentQuery | TimeSavedByAiAgentQuery | AiAgentTicketFieldsQuery | OverallDecreaseInResolutionTimeQuery | AIAgentDecreaseInResolutionTimeQuery | FlowDatasetQuery | AiAgentCsatQuery | OverallDecreaseInFirstResponseTimeQuery | AIAgentDecreaseInFirstResponseTimeQuery | TicketStatusBreakdownQuery | BillingUsageQuery}; export type CreateApiApiReportingStatsArgs = {cursor?: string | undefined, limit?: number | undefined, body: ReportingStats}; export type CreateApiApiReportingStatsOptions = {baseUrl?: string | undefined, basicAuth?: {username: string, password: string} | undefined, fetch?: typeof fetch | undefined}; export const reportingStatsScopesEnum = z.enum(["tickets-closed", "tickets-created", "tickets-open", "tickets-replied", "one-touch-tickets", "zero-touch-tickets", "satisfaction-surveys", "satisfaction-surveys-v2", "resolution-time", "messages-sent", "first-response-time", "human-first-response-time", "response-time", "messages-per-ticket", "ticket-handle-time", "online-time", "tags", "auto-qa", "messages-received", "messages-sent-per-macro", "ticket-macro-usage", "automation-rate", "workload-tickets", "automated-interactions", "ticket-fields", "voice-calls", "voice-agent-events", "ticket-sla", "knowledge-insights", "voice-calls-summary", "voice-queue-exposure", "user-availability-tracking", "convert-campaign-events", "convert-order-conversion", "convert-campaign-order-events", "help-center", "ai-sales-agent-orders", "ai-sales-agent-conversations", "overall-automation-rate", "ai-agent-automated-interactions", "overall-automated-interactions", "handover-interactions", "ai-sales-agent-orders-performance", "ai-sales-agent-discounts", "ai-sales-agent-activity", "ai-sales-agent-buy-through-rate", "ai-sales-agent-conversion-rate", "ai-sales-agent-contribution-to-total-sales", "ai-agent-coverage-rate", "ai-agent-success-rate", "ai-agent-handover-rate", "ai-agent-funnel", "overall-time-saved-by-agent", "ai-agent-time-saved", "ai-agent-tickets-closed", "ai-agent-ticket-fields", "overall-decrease-in-resolution-time", "ai-agent-decrease-in-resolution-time", "flow-dataset", "ai-agent-csat", "overall-decrease-in-first-response-time", "ai-agent-decrease-in-first-response-time", "revenue", "ai-influenced-orders-lookup", "ticket-status-breakdown", "gaia-current-billing-usage", "billing-usage", "live-chat-summary", "live-ticket-summary"]); export const analyticsReportingMeta = z.object({scope: reportingStatsScopesEnum, prev_cursor: z.string(), next_cursor: z.string(), total: z.number().int(), offset: z.number().int(), limit: z.number().int()}); export const analyticsReporting = z.object({object: z.string(), uri: z.string(), data: z.array(z.record(z.string(), z.union([z.boolean(), z.string(), z.number().int(), z.array(z.unknown()), z.object({})]))), meta: analyticsReportingMeta}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Retrieve a statistic * * POST /api/reporting/stats */ export const createApiApiReportingStats = async (args: CreateApiApiReportingStatsArgs, options?: CreateApiApiReportingStatsOptions) => { const {baseUrl = "https://your-domain.gorgias.com", fetch: fetchFn = fetch, basicAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args.cursor != null) query.append("cursor", String(args.cursor)) if (args.limit != null) query.append("limit", String(args.limit)) if (basicAuth !== undefined) headers.set('authorization', `Basic ${btoa(`${basicAuth.username}:${basicAuth.password}`)}`) const url = `${baseUrl.replace(/\/+$/, '')}/api/reporting/stats${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(analyticsReporting, await res.json()) };