import yup from "yup"; //#region src/interface/admin-tv-mode.d.ts declare const TV_SCREEN_IDS: readonly ["live-pulse", "audience-momentum", "revenue-payments", "email-health"]; declare const TV_MINIMUM_PAYMENT_ATTEMPTS = 10; declare const TV_MINIMUM_EMAIL_OUTCOMES = 20; declare const TV_SNAPSHOT_POLL_INTERVAL_MS = 15000; declare const TV_SNAPSHOT_STALE_AFTER_MS = 45000; declare const TV_PROFILE_DURATION_SECONDS: readonly [15, 16, 18, 20, 30]; declare const TV_PROFILE_DISPLAY_NAME_MAX_LENGTH = 80; declare const TV_TAKEOVER_DURATION_SECONDS: readonly [30, 60, 90, 120]; declare const TV_CELEBRATION_ANIMATION_DURATION_SECONDS: readonly [600, 1800, 3600, 7200]; declare const TV_EVENT_HIGHLIGHT_DURATION_SECONDS: readonly [3600, 21600, 43200, 86400]; declare function calculateTvPaymentSuccessPercent(applicableAttempts: number, successfulAttempts: number): number | null; declare function calculateTvEmailRates(assessableSends: number, delivered: number, bounced: number): { deliveryRatePercent: number | null; bounceRatePercent: number | null; }; declare const TvScreenIdSchema: yup.StringSchema<"live-pulse" | "audience-momentum" | "revenue-payments" | "email-health", yup.AnyObject, undefined, "">; declare const TvSourceStatusSchema: yup.StringSchema<"ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale", yup.AnyObject, undefined, "">; declare const TvReportingWindowSchema: yup.ObjectSchema<{ current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }, yup.AnyObject, { current: { startsAt: undefined; endsAt: undefined; label: undefined; }; comparison: { startsAt: undefined; endsAt: undefined; label: undefined; }; }, "">; declare const TvTrendPointSchema: yup.ObjectSchema<{ label: string; value: number; }, yup.AnyObject, { label: undefined; value: undefined; }, "">; declare const TvStackedTrendPointSchema: yup.ObjectSchema<{ label: string; primary: number; secondary: number; tertiary: number; }, yup.AnyObject, { label: undefined; primary: undefined; secondary: undefined; tertiary: undefined; }, "">; declare const TvStatusFactSchema: yup.ObjectSchema<{ label: string; status: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale" | "healthy" | "limited"; value: string; detail: string; }, yup.AnyObject, { label: undefined; status: undefined; value: undefined; detail: undefined; }, "">; declare const TvLivePulseScreenSchema: yup.ObjectSchema<{ data: { liveUsers: number; todayActiveUsers: number; hourlyActivity: { value: number; label: string; }[]; sourceHealth: { value: string; label: string; status: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale" | "healthy" | "limited"; detail: string; }[]; } | null; insight: { message: string; kind: "live-activity-above-baseline"; evidence: { currentLiveUsers: number; baselineLiveUsers: number; deltaPercent: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; id: "live-pulse"; }, yup.AnyObject, { data: { liveUsers: undefined; todayActiveUsers: undefined; hourlyActivity: undefined; sourceHealth: undefined; }; insight: { kind: undefined; message: undefined; evidence: { currentLiveUsers: undefined; baselineLiveUsers: undefined; deltaPercent: undefined; }; }; sourceStatus: undefined; sourceLabel: undefined; observedAt: undefined; window: { current: { startsAt: undefined; endsAt: undefined; label: undefined; }; comparison: { startsAt: undefined; endsAt: undefined; label: undefined; }; }; diagnosticCode: undefined; id: undefined; }, "">; declare const TvAudienceMomentumScreenSchema: yup.ObjectSchema<{ data: { totalUsers: number; userGrowthPercent: number; newUsers: number; monthlyActiveUsers: number; verificationRatePercent: number; lifecycle: { label: string; primary: number; secondary: number; tertiary: number; }[]; analytics: { data: { visitors: number; qualifyingSessions: number; averageSessionSeconds: number | null; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error"; observedAt: string; diagnosticCode: string | null; }; } | null; insight: { message: string; kind: "returning-users-leading"; evidence: { newActivity: number; retainedActivity: number; reactivatedActivity: number; leadMarginPercent: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; id: "audience-momentum"; }, yup.AnyObject, { data: { totalUsers: undefined; userGrowthPercent: undefined; newUsers: undefined; monthlyActiveUsers: undefined; verificationRatePercent: undefined; lifecycle: undefined; analytics: { sourceStatus: undefined; observedAt: undefined; diagnosticCode: undefined; data: { visitors: undefined; qualifyingSessions: undefined; averageSessionSeconds: undefined; }; }; }; insight: { kind: undefined; message: undefined; evidence: { newActivity: undefined; retainedActivity: undefined; reactivatedActivity: undefined; leadMarginPercent: undefined; }; }; sourceStatus: undefined; sourceLabel: undefined; observedAt: undefined; window: { current: { startsAt: undefined; endsAt: undefined; label: undefined; }; comparison: { startsAt: undefined; endsAt: undefined; label: undefined; }; }; diagnosticCode: undefined; id: undefined; }, "">; declare const TvRevenuePaymentsScreenSchema: yup.ObjectSchema<{ data: { financials: { visibility: "exact"; paidRevenueCents: number; revenueTrend: { value: number; label: string; }[]; } | { visibility: "redacted"; direction: "flat" | "up" | "down"; normalizedRevenueTrend: { value: number; label: string; }[]; }; revenueChangePercent: number; activeSubscriptions: number; newSubscriptions: number; pastDueSubscriptions: number; paymentSuccess: { applicableAttempts: number; percent: number | null; }; } | null; insight: { message: string; kind: "revenue-up-payments-stable"; evidence: { revenueChangePercent: number; paymentSuccessPercent: number; applicablePaymentAttempts: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; id: "revenue-payments"; }, yup.AnyObject, { data: { financials: undefined; revenueChangePercent: undefined; activeSubscriptions: undefined; newSubscriptions: undefined; pastDueSubscriptions: undefined; paymentSuccess: { applicableAttempts: undefined; percent: undefined; }; }; insight: { kind: undefined; message: undefined; evidence: { revenueChangePercent: undefined; paymentSuccessPercent: undefined; applicablePaymentAttempts: undefined; }; }; sourceStatus: undefined; sourceLabel: undefined; observedAt: undefined; window: { current: { startsAt: undefined; endsAt: undefined; label: undefined; }; comparison: { startsAt: undefined; endsAt: undefined; label: undefined; }; }; diagnosticCode: undefined; id: undefined; }, "">; declare const TvEmailHealthScreenSchema: yup.ObjectSchema<{ data: { sent: number; assessableSends: number; delivered: number; bounced: number; errors: number; inProgress: number; deliveryRatePercent: number | null; bounceRatePercent: number | null; volumeChangePercent: number; statusTrend: { label: string; primary: number; secondary: number; tertiary: number; }[]; } | null; insight: { message: string; kind: "delivery-healthy-volume-up"; evidence: { deliveryRatePercent: number; volumeChangePercent: number; finishedSends: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; id: "email-health"; }, yup.AnyObject, { data: { sent: undefined; assessableSends: undefined; delivered: undefined; bounced: undefined; errors: undefined; inProgress: undefined; deliveryRatePercent: undefined; bounceRatePercent: undefined; volumeChangePercent: undefined; statusTrend: undefined; }; insight: { kind: undefined; message: undefined; evidence: { deliveryRatePercent: undefined; volumeChangePercent: undefined; finishedSends: undefined; }; }; sourceStatus: undefined; sourceLabel: undefined; observedAt: undefined; window: { current: { startsAt: undefined; endsAt: undefined; label: undefined; }; comparison: { startsAt: undefined; endsAt: undefined; label: undefined; }; }; diagnosticCode: undefined; id: undefined; }, "">; declare const TvScreenSnapshotSchema: yup.MixedSchema<{ id: "live-pulse"; data: { liveUsers: number; todayActiveUsers: number; hourlyActivity: { value: number; label: string; }[]; sourceHealth: { value: string; label: string; status: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale" | "healthy" | "limited"; detail: string; }[]; } | null; insight: { message: string; kind: "live-activity-above-baseline"; evidence: { currentLiveUsers: number; baselineLiveUsers: number; deltaPercent: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; } | { id: "audience-momentum"; data: { totalUsers: number; userGrowthPercent: number; newUsers: number; monthlyActiveUsers: number; verificationRatePercent: number; lifecycle: { label: string; primary: number; secondary: number; tertiary: number; }[]; analytics: { data: { visitors: number; qualifyingSessions: number; averageSessionSeconds: number | null; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error"; observedAt: string; diagnosticCode: string | null; }; } | null; insight: { message: string; kind: "returning-users-leading"; evidence: { newActivity: number; retainedActivity: number; reactivatedActivity: number; leadMarginPercent: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; } | { id: "revenue-payments"; data: { financials: { visibility: "exact"; paidRevenueCents: number; revenueTrend: { value: number; label: string; }[]; } | { visibility: "redacted"; direction: "flat" | "up" | "down"; normalizedRevenueTrend: { value: number; label: string; }[]; }; revenueChangePercent: number; activeSubscriptions: number; newSubscriptions: number; pastDueSubscriptions: number; paymentSuccess: { applicableAttempts: number; percent: number | null; }; } | null; insight: { message: string; kind: "revenue-up-payments-stable"; evidence: { revenueChangePercent: number; paymentSuccessPercent: number; applicablePaymentAttempts: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; } | { id: "email-health"; data: { sent: number; assessableSends: number; delivered: number; bounced: number; errors: number; inProgress: number; deliveryRatePercent: number | null; bounceRatePercent: number | null; volumeChangePercent: number; statusTrend: { label: string; primary: number; secondary: number; tertiary: number; }[]; } | null; insight: { message: string; kind: "delivery-healthy-volume-up"; evidence: { deliveryRatePercent: number; volumeChangePercent: number; finishedSends: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; }, yup.AnyObject, undefined, "">; declare const TvEventSchema: yup.ObjectSchema<{ id: string; type: "email-delivery-degradation" | "subscription-collection-degradation" | "user-milestone"; presentationClass: "celebration" | "incident" | "critical-incident"; status: "resolved" | "active"; title: string; summary: string; metricLabel: string; metricValue: string; expectedRange: string | null; sourceLabel: string; occurredAt: string; updatedAt: string; }, yup.AnyObject, { id: undefined; type: undefined; presentationClass: undefined; status: undefined; title: undefined; summary: undefined; metricLabel: undefined; metricValue: undefined; expectedRange: undefined; sourceLabel: undefined; occurredAt: undefined; updatedAt: undefined; }, "">; declare const TvPresentedTakeoverSchema: yup.ObjectSchema<{ event: { type: "email-delivery-degradation" | "subscription-collection-degradation" | "user-milestone"; id: string; status: "resolved" | "active"; sourceLabel: string; presentationClass: "celebration" | "incident" | "critical-incident"; title: string; summary: string; metricLabel: string; metricValue: string; expectedRange: string | null; occurredAt: string; updatedAt: string; }; variant: "celebration" | "incident" | "critical-incident" | "recovery-confirmation"; startedAt: string; endsAt: string; }, yup.AnyObject, { event: { id: undefined; type: undefined; presentationClass: undefined; status: undefined; title: undefined; summary: undefined; metricLabel: undefined; metricValue: undefined; expectedRange: undefined; sourceLabel: undefined; occurredAt: undefined; updatedAt: undefined; }; variant: undefined; startedAt: undefined; endsAt: undefined; }, "">; declare const TvPresentedEventHighlightSchema: yup.ObjectSchema<{ event: { type: "email-delivery-degradation" | "subscription-collection-degradation" | "user-milestone"; id: string; status: "resolved" | "active"; sourceLabel: string; presentationClass: "celebration" | "incident" | "critical-incident"; title: string; summary: string; metricLabel: string; metricValue: string; expectedRange: string | null; occurredAt: string; updatedAt: string; }; variant: "celebration" | "active-incident" | "resolved-incident"; expiresAt: string | null; animationExpiresAt: string | null; }, yup.AnyObject, { event: { id: undefined; type: undefined; presentationClass: undefined; status: undefined; title: undefined; summary: undefined; metricLabel: undefined; metricValue: undefined; expectedRange: undefined; sourceLabel: undefined; occurredAt: undefined; updatedAt: undefined; }; variant: undefined; expiresAt: undefined; animationExpiresAt: undefined; }, "">; declare const TvProfileSnapshotSchema: yup.ObjectSchema<{ id: string; displayName: string; mode: "general"; defaultDurationSeconds: number; playlist: ("live-pulse" | "audience-momentum" | "revenue-payments" | "email-health")[]; screenDurations: { screenId: "live-pulse" | "audience-momentum" | "revenue-payments" | "email-health"; durationSeconds: number; }[] | undefined; }, yup.AnyObject, { id: undefined; displayName: undefined; mode: undefined; defaultDurationSeconds: undefined; playlist: undefined; screenDurations: undefined; }, "">; declare const TvSnapshotSchema: yup.ObjectSchema<{ generatedAt: string; staleAfter: string; connectionStatus: "stale" | "online" | "offline"; project: { id: string; displayName: string; }; profile: { screenDurations?: { screenId: "live-pulse" | "audience-momentum" | "revenue-payments" | "email-health"; durationSeconds: number; }[] | undefined; id: string; displayName: string; mode: "general"; defaultDurationSeconds: number; playlist: ("live-pulse" | "audience-momentum" | "revenue-payments" | "email-health")[]; }; screens: ({ id: "live-pulse"; data: { liveUsers: number; todayActiveUsers: number; hourlyActivity: { value: number; label: string; }[]; sourceHealth: { value: string; label: string; status: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale" | "healthy" | "limited"; detail: string; }[]; } | null; insight: { message: string; kind: "live-activity-above-baseline"; evidence: { currentLiveUsers: number; baselineLiveUsers: number; deltaPercent: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; } | { id: "audience-momentum"; data: { totalUsers: number; userGrowthPercent: number; newUsers: number; monthlyActiveUsers: number; verificationRatePercent: number; lifecycle: { label: string; primary: number; secondary: number; tertiary: number; }[]; analytics: { data: { visitors: number; qualifyingSessions: number; averageSessionSeconds: number | null; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error"; observedAt: string; diagnosticCode: string | null; }; } | null; insight: { message: string; kind: "returning-users-leading"; evidence: { newActivity: number; retainedActivity: number; reactivatedActivity: number; leadMarginPercent: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; } | { id: "revenue-payments"; data: { financials: { visibility: "exact"; paidRevenueCents: number; revenueTrend: { value: number; label: string; }[]; } | { visibility: "redacted"; direction: "flat" | "up" | "down"; normalizedRevenueTrend: { value: number; label: string; }[]; }; revenueChangePercent: number; activeSubscriptions: number; newSubscriptions: number; pastDueSubscriptions: number; paymentSuccess: { applicableAttempts: number; percent: number | null; }; } | null; insight: { message: string; kind: "revenue-up-payments-stable"; evidence: { revenueChangePercent: number; paymentSuccessPercent: number; applicablePaymentAttempts: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; } | { id: "email-health"; data: { sent: number; assessableSends: number; delivered: number; bounced: number; errors: number; inProgress: number; deliveryRatePercent: number | null; bounceRatePercent: number | null; volumeChangePercent: number; statusTrend: { label: string; primary: number; secondary: number; tertiary: number; }[]; } | null; insight: { message: string; kind: "delivery-healthy-volume-up"; evidence: { deliveryRatePercent: number; volumeChangePercent: number; finishedSends: number; }; } | null; sourceStatus: "ready" | "empty" | "insufficient-data" | "unavailable" | "error" | "stale"; sourceLabel: string; observedAt: string; window: { current: { label: string; startsAt: string; endsAt: string; }; comparison: { label: string; startsAt: string; endsAt: string; } | null; }; diagnosticCode: string | null; })[]; presentation: { takeover: { endsAt: string; event: { type: "email-delivery-degradation" | "subscription-collection-degradation" | "user-milestone"; id: string; status: "resolved" | "active"; sourceLabel: string; presentationClass: "celebration" | "incident" | "critical-incident"; title: string; summary: string; metricLabel: string; metricValue: string; expectedRange: string | null; occurredAt: string; updatedAt: string; }; variant: "celebration" | "incident" | "critical-incident" | "recovery-confirmation"; startedAt: string; } | null; highlight: { event: { type: "email-delivery-degradation" | "subscription-collection-degradation" | "user-milestone"; id: string; status: "resolved" | "active"; sourceLabel: string; presentationClass: "celebration" | "incident" | "critical-incident"; title: string; summary: string; metricLabel: string; metricValue: string; expectedRange: string | null; occurredAt: string; updatedAt: string; }; variant: "celebration" | "active-incident" | "resolved-incident"; expiresAt: string | null; animationExpiresAt: string | null; } | null; }; fatalErrorMessage: string | null; }, yup.AnyObject, { generatedAt: undefined; staleAfter: undefined; connectionStatus: undefined; project: { id: undefined; displayName: undefined; }; profile: { id: undefined; displayName: undefined; mode: undefined; defaultDurationSeconds: undefined; playlist: undefined; screenDurations: undefined; }; screens: undefined; presentation: { takeover: { event: { id: undefined; type: undefined; presentationClass: undefined; status: undefined; title: undefined; summary: undefined; metricLabel: undefined; metricValue: undefined; expectedRange: undefined; sourceLabel: undefined; occurredAt: undefined; updatedAt: undefined; }; variant: undefined; startedAt: undefined; endsAt: undefined; }; highlight: { event: { id: undefined; type: undefined; presentationClass: undefined; status: undefined; title: undefined; summary: undefined; metricLabel: undefined; metricValue: undefined; expectedRange: undefined; sourceLabel: undefined; occurredAt: undefined; updatedAt: undefined; }; variant: undefined; expiresAt: undefined; animationExpiresAt: undefined; }; }; fatalErrorMessage: undefined; }, "">; type TvScreenId = yup.InferType; type TvSourceStatus = yup.InferType; type TvReportingWindow = yup.InferType; type TvTrendPoint = yup.InferType; type TvStackedTrendPoint = yup.InferType; type TvStatusFact = yup.InferType; type TvLivePulseScreen = yup.InferType; type TvAudienceMomentumScreen = yup.InferType; type TvRevenuePaymentsScreen = yup.InferType; type TvEmailHealthScreen = yup.InferType; type TvScreenSnapshot = yup.InferType; type TvEvent = yup.InferType; type TvPresentedTakeover = yup.InferType; type TvPresentedEventHighlight = yup.InferType; type TvProfileSnapshot = yup.InferType; type TvSnapshot = yup.InferType; declare function normalizeTvProfileDisplayName(displayName: string): string; declare const TvProfileDisplayNameSchema: yup.StringSchema; declare const TvProfilePlaylistEntrySchema: yup.ObjectSchema<{ screenId: "live-pulse" | "audience-momentum" | "revenue-payments" | "email-health"; durationSecondsOverride: number | null; }, yup.AnyObject, { screenId: undefined; durationSecondsOverride: undefined; }, "">; declare const TvProfilePlaylistSchema: yup.ArraySchema<{ screenId: "live-pulse" | "audience-momentum" | "revenue-payments" | "email-health"; durationSecondsOverride: number | null; }[], yup.AnyObject, undefined, "">; declare const TvInterruptionPreferencesSchema: yup.ObjectSchema<{ incidentTypes: { emailDeliveryDegradation: boolean; subscriptionCollectionDegradation: boolean; }; celebrations: { userMilestone: boolean; revenueMilestone: boolean; }; timing: { celebration: { takeoverSeconds: number; animationSeconds: number; highlightSeconds: number; }; incident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; criticalIncident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; }; }, yup.AnyObject, { incidentTypes: { emailDeliveryDegradation: undefined; subscriptionCollectionDegradation: undefined; }; celebrations: { userMilestone: undefined; revenueMilestone: undefined; }; timing: { celebration: { takeoverSeconds: undefined; animationSeconds: undefined; highlightSeconds: undefined; }; incident: { takeoverSeconds: undefined; recoveryTakeoverSeconds: undefined; resolvedHighlightSeconds: undefined; }; criticalIncident: { takeoverSeconds: undefined; recoveryTakeoverSeconds: undefined; resolvedHighlightSeconds: undefined; }; }; }, "">; declare const TvProfileConfigurationSchema: yup.ObjectSchema<{ displayName: string; description: string; mode: "general"; defaultDurationSeconds: number; playlist: { screenId: "live-pulse" | "audience-momentum" | "revenue-payments" | "email-health"; durationSecondsOverride: number | null; }[]; interruptionPreferences: { incidentTypes: { emailDeliveryDegradation: boolean; subscriptionCollectionDegradation: boolean; }; celebrations: { userMilestone: boolean; revenueMilestone: boolean; }; timing: { celebration: { takeoverSeconds: number; animationSeconds: number; highlightSeconds: number; }; incident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; criticalIncident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; }; }; financialVisibility: "exact" | "redacted"; }, yup.AnyObject, { displayName: undefined; description: undefined; mode: undefined; defaultDurationSeconds: undefined; playlist: undefined; interruptionPreferences: { incidentTypes: { emailDeliveryDegradation: undefined; subscriptionCollectionDegradation: undefined; }; celebrations: { userMilestone: undefined; revenueMilestone: undefined; }; timing: { celebration: { takeoverSeconds: undefined; animationSeconds: undefined; highlightSeconds: undefined; }; incident: { takeoverSeconds: undefined; recoveryTakeoverSeconds: undefined; resolvedHighlightSeconds: undefined; }; criticalIncident: { takeoverSeconds: undefined; recoveryTakeoverSeconds: undefined; resolvedHighlightSeconds: undefined; }; }; }; financialVisibility: undefined; }, "">; declare const TvBuiltInProfileResourceSchema: yup.ObjectSchema<{ origin: "built-in"; version: number | null; createdAt: null; updatedAt: null; id: string; configuration: { description: string; displayName: string; mode: "general"; defaultDurationSeconds: number; playlist: { screenId: "live-pulse" | "audience-momentum" | "revenue-payments" | "email-health"; durationSecondsOverride: number | null; }[]; interruptionPreferences: { incidentTypes: { emailDeliveryDegradation: boolean; subscriptionCollectionDegradation: boolean; }; celebrations: { userMilestone: boolean; revenueMilestone: boolean; }; timing: { celebration: { takeoverSeconds: number; animationSeconds: number; highlightSeconds: number; }; incident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; criticalIncident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; }; }; financialVisibility: "exact" | "redacted"; }; }, yup.AnyObject, { origin: undefined; version: undefined; createdAt: undefined; updatedAt: undefined; id: undefined; configuration: { displayName: undefined; description: undefined; mode: undefined; defaultDurationSeconds: undefined; playlist: undefined; interruptionPreferences: { incidentTypes: { emailDeliveryDegradation: undefined; subscriptionCollectionDegradation: undefined; }; celebrations: { userMilestone: undefined; revenueMilestone: undefined; }; timing: { celebration: { takeoverSeconds: undefined; animationSeconds: undefined; highlightSeconds: undefined; }; incident: { takeoverSeconds: undefined; recoveryTakeoverSeconds: undefined; resolvedHighlightSeconds: undefined; }; criticalIncident: { takeoverSeconds: undefined; recoveryTakeoverSeconds: undefined; resolvedHighlightSeconds: undefined; }; }; }; financialVisibility: undefined; }; }, "">; declare const TvSavedProfileResourceSchema: yup.ObjectSchema<{ id: string; origin: "saved"; version: number; createdAt: string; updatedAt: string; configuration: { description: string; displayName: string; mode: "general"; defaultDurationSeconds: number; playlist: { screenId: "live-pulse" | "audience-momentum" | "revenue-payments" | "email-health"; durationSecondsOverride: number | null; }[]; interruptionPreferences: { incidentTypes: { emailDeliveryDegradation: boolean; subscriptionCollectionDegradation: boolean; }; celebrations: { userMilestone: boolean; revenueMilestone: boolean; }; timing: { celebration: { takeoverSeconds: number; animationSeconds: number; highlightSeconds: number; }; incident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; criticalIncident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; }; }; financialVisibility: "exact" | "redacted"; }; }, yup.AnyObject, { id: undefined; origin: undefined; version: undefined; createdAt: undefined; updatedAt: undefined; configuration: { displayName: undefined; description: undefined; mode: undefined; defaultDurationSeconds: undefined; playlist: undefined; interruptionPreferences: { incidentTypes: { emailDeliveryDegradation: undefined; subscriptionCollectionDegradation: undefined; }; celebrations: { userMilestone: undefined; revenueMilestone: undefined; }; timing: { celebration: { takeoverSeconds: undefined; animationSeconds: undefined; highlightSeconds: undefined; }; incident: { takeoverSeconds: undefined; recoveryTakeoverSeconds: undefined; resolvedHighlightSeconds: undefined; }; criticalIncident: { takeoverSeconds: undefined; recoveryTakeoverSeconds: undefined; resolvedHighlightSeconds: undefined; }; }; }; financialVisibility: undefined; }; }, "">; declare const TvProfileResourceSchema: yup.MixedSchema<{ id: string; updatedAt: null; origin: "built-in"; version: number | null; createdAt: null; configuration: { description: string; displayName: string; mode: "general"; defaultDurationSeconds: number; playlist: { screenId: "live-pulse" | "audience-momentum" | "revenue-payments" | "email-health"; durationSecondsOverride: number | null; }[]; interruptionPreferences: { incidentTypes: { emailDeliveryDegradation: boolean; subscriptionCollectionDegradation: boolean; }; celebrations: { userMilestone: boolean; revenueMilestone: boolean; }; timing: { celebration: { takeoverSeconds: number; animationSeconds: number; highlightSeconds: number; }; incident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; criticalIncident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; }; }; financialVisibility: "exact" | "redacted"; }; } | { id: string; updatedAt: string; origin: "saved"; version: number; createdAt: string; configuration: { description: string; displayName: string; mode: "general"; defaultDurationSeconds: number; playlist: { screenId: "live-pulse" | "audience-momentum" | "revenue-payments" | "email-health"; durationSecondsOverride: number | null; }[]; interruptionPreferences: { incidentTypes: { emailDeliveryDegradation: boolean; subscriptionCollectionDegradation: boolean; }; celebrations: { userMilestone: boolean; revenueMilestone: boolean; }; timing: { celebration: { takeoverSeconds: number; animationSeconds: number; highlightSeconds: number; }; incident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; criticalIncident: { takeoverSeconds: number; recoveryTakeoverSeconds: number; resolvedHighlightSeconds: number; }; }; }; financialVisibility: "exact" | "redacted"; }; }, yup.AnyObject, undefined, "">; type TvProfilePlaylistEntry = yup.InferType; type TvInterruptionPreferences = yup.InferType; type TvProfileConfiguration = yup.InferType; type TvBuiltInProfileResource = yup.InferType; type TvSavedProfileResource = yup.InferType; type TvProfileResource = yup.InferType; declare const TvDisplayResourceSchema: yup.ObjectSchema<{ id: string; displayName: string; profileId: string; profileDisplayName: string; profileFinancialVisibility: "exact" | "redacted"; state: "online" | "offline" | "never-connected"; pairedAt: string; lastSeenAt: string | null; exactFinancialsAcknowledged: boolean; }, yup.AnyObject, { id: undefined; displayName: undefined; profileId: undefined; profileDisplayName: undefined; profileFinancialVisibility: undefined; state: undefined; pairedAt: undefined; lastSeenAt: undefined; exactFinancialsAcknowledged: undefined; }, "">; declare const TV_DISPLAY_PAIRING_CODE_PATTERN: RegExp; declare const TvDisplayPairingChallengeSchema: yup.ObjectSchema<{ challengeId: string; pairingCode: string; deviceSecret: string; expiresAt: string; pollingIntervalSeconds: number; }, yup.AnyObject, { challengeId: undefined; pairingCode: undefined; deviceSecret: undefined; expiresAt: undefined; pollingIntervalSeconds: undefined; }, "">; declare const TvDisplayPairingStatusSchema: yup.MixedSchema<{ status: "waiting"; retryAfterSeconds: number; } | { status: "paired"; display: { id: string; displayName: string; profileId: string; profileDisplayName: string; profileFinancialVisibility: "exact" | "redacted"; state: "online" | "offline" | "never-connected"; pairedAt: string; lastSeenAt: string | null; exactFinancialsAcknowledged: boolean; }; accessToken: string; } | { status: "expired" | "rejected" | "used"; }, yup.AnyObject, undefined, "">; type TvDisplayResource = yup.InferType; type TvDisplayPairingChallenge = yup.InferType; type TvDisplayPairingStatus = yup.InferType; type TvBuiltInProfile = TvBuiltInProfileResource; declare const TV_BUILT_IN_PROFILES: readonly TvBuiltInProfile[]; declare function getTvBuiltInProfile(profileId: string): TvBuiltInProfile | null; //#endregion export { TV_BUILT_IN_PROFILES, TV_CELEBRATION_ANIMATION_DURATION_SECONDS, TV_DISPLAY_PAIRING_CODE_PATTERN, TV_EVENT_HIGHLIGHT_DURATION_SECONDS, TV_MINIMUM_EMAIL_OUTCOMES, TV_MINIMUM_PAYMENT_ATTEMPTS, TV_PROFILE_DISPLAY_NAME_MAX_LENGTH, TV_PROFILE_DURATION_SECONDS, TV_SCREEN_IDS, TV_SNAPSHOT_POLL_INTERVAL_MS, TV_SNAPSHOT_STALE_AFTER_MS, TV_TAKEOVER_DURATION_SECONDS, TvAudienceMomentumScreen, TvAudienceMomentumScreenSchema, TvBuiltInProfile, TvBuiltInProfileResource, TvBuiltInProfileResourceSchema, TvDisplayPairingChallenge, TvDisplayPairingChallengeSchema, TvDisplayPairingStatus, TvDisplayPairingStatusSchema, TvDisplayResource, TvDisplayResourceSchema, TvEmailHealthScreen, TvEmailHealthScreenSchema, TvEvent, TvInterruptionPreferences, TvInterruptionPreferencesSchema, TvLivePulseScreen, TvLivePulseScreenSchema, TvPresentedEventHighlight, TvPresentedTakeover, TvProfileConfiguration, TvProfileConfigurationSchema, TvProfileDisplayNameSchema, TvProfilePlaylistEntry, TvProfilePlaylistEntrySchema, TvProfilePlaylistSchema, TvProfileResource, TvProfileResourceSchema, TvProfileSnapshot, TvProfileSnapshotSchema, TvReportingWindow, TvRevenuePaymentsScreen, TvRevenuePaymentsScreenSchema, TvSavedProfileResource, TvSavedProfileResourceSchema, TvScreenId, TvScreenIdSchema, TvScreenSnapshot, TvScreenSnapshotSchema, TvSnapshot, TvSnapshotSchema, TvSourceStatus, TvStackedTrendPoint, TvStatusFact, TvTrendPoint, calculateTvEmailRates, calculateTvPaymentSuccessPercent, getTvBuiltInProfile, normalizeTvProfileDisplayName }; //# sourceMappingURL=admin-tv-mode.d.ts.map