import { z } from "zod";
import type { NotificationChannel } from "../types/team.js";
export declare const TeamSchema: z.ZodObject<{
    id: z.ZodType<import("../index.js").Brand<string, "TeamId">, unknown, z.core.$ZodTypeInternals<import("../index.js").Brand<string, "TeamId">, unknown>>;
    slug: z.ZodType<import("../index.js").Brand<string, "TeamSlug">, unknown, z.core.$ZodTypeInternals<import("../index.js").Brand<string, "TeamSlug">, unknown>>;
    displayName: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    status: z.ZodEnum<{
        active: "active";
        archived: "archived";
    }>;
    members: z.ZodArray<z.ZodObject<{
        email: z.ZodOptional<z.ZodString>;
        sanityUserId: z.ZodOptional<z.ZodString>;
        githubUsername: z.ZodOptional<z.ZodString>;
        displayName: z.ZodOptional<z.ZodString>;
        role: z.ZodOptional<z.ZodString>;
        lastVerifiedAt: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
    notifications: z.ZodOptional<z.ZodArray<z.ZodType<NotificationChannel, unknown, z.core.$ZodTypeInternals<NotificationChannel, unknown>>>>;
}, z.core.$strip>;
/**
 * A team loaded for **notification delivery**, where the roster is irrelevant.
 *
 * `matchReportToChannels` routes by `report.provenance.owner.team` plus each
 * channel's `scope` / `events`; it never reads `members`. Membership is modeled
 * user-side as `ailf.user.teams[]` (self-declared affiliation — personalization
 * only, D0075) and never populates the team-side `members[]` roster, which is
 * Studio-authored and empty for nearly every team. So `TeamSchema`'s
 * `members.min(1)` — correct for the team-as-ownership-entity contract — would
 * wrongly drop every channel-bearing but member-less team from the subscription
 * read. This view relaxes only that one constraint; `slug`, `status`, and the
 * `notifications[]` discriminated union are still validated, so a malformed
 * channel is still skipped. `TeamSchema` itself is unchanged.
 */
export declare const SubscribedTeamSchema: z.ZodObject<{
    id: z.ZodType<import("../index.js").Brand<string, "TeamId">, unknown, z.core.$ZodTypeInternals<import("../index.js").Brand<string, "TeamId">, unknown>>;
    slug: z.ZodType<import("../index.js").Brand<string, "TeamSlug">, unknown, z.core.$ZodTypeInternals<import("../index.js").Brand<string, "TeamSlug">, unknown>>;
    displayName: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    status: z.ZodEnum<{
        active: "active";
        archived: "archived";
    }>;
    repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
    notifications: z.ZodOptional<z.ZodArray<z.ZodType<NotificationChannel, unknown, z.core.$ZodTypeInternals<NotificationChannel, unknown>>>>;
    members: z.ZodArray<z.ZodObject<{
        email: z.ZodOptional<z.ZodString>;
        sanityUserId: z.ZodOptional<z.ZodString>;
        githubUsername: z.ZodOptional<z.ZodString>;
        displayName: z.ZodOptional<z.ZodString>;
        role: z.ZodOptional<z.ZodString>;
        lastVerifiedAt: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
