import type { SessionContextRecord } from "../state/state-types"; export type NotificationScopeSource = "config" | "shared" | "session" | "unresolved"; export type NotificationScopeReason = "project_allowed" | "project_not_in_scope" | "missing_notification_project" | "multiple_session_projects" | "missing_scope_context"; export type EffectiveNotificationScope = { status: "resolved"; source: Exclude; projectUuids: string[]; } | { status: "unresolved"; source: "unresolved"; reason: Extract; projectUuids: []; }; export type NotificationScopeEvaluation = { outcome: "in_scope"; source: Exclude; reason: "project_allowed"; notificationProjectUuid: string; scopeProjectUuids: string[]; } | { outcome: "out_of_scope"; source: Exclude; reason: "project_not_in_scope"; notificationProjectUuid: string; scopeProjectUuids: string[]; } | { outcome: "unresolved"; source: NotificationScopeSource; reason: Extract; notificationProjectUuid?: string; scopeProjectUuids: string[]; }; type ResolveEffectiveNotificationScopeInput = { configuredProjectUuids?: string[]; sharedProjectUuid?: string; sessionProjects?: SessionContextRecord["projects"]; }; type EvaluateNotificationScopeInput = { projectUuid?: string; }; export declare function resolveEffectiveNotificationScope(input: ResolveEffectiveNotificationScopeInput): EffectiveNotificationScope; export declare function evaluateNotificationScope(notification: EvaluateNotificationScopeInput, scope: EffectiveNotificationScope): NotificationScopeEvaluation; export {};