/**
 * Known owner-team slugs and soft-normalization helper.
 *
 * `RunOwner.team` is free-form by design (external teams name themselves
 * and internal names drift). This module provides two things to keep UX
 * polished without blocking new entrants:
 *
 *   - `KNOWN_OWNER_TEAMS` — a seed list of canonical slugs that populates
 *     Studio filter comboboxes as suggestions. Not a closed enum.
 *   - `normalizeOwnerTeam()` — maps a handful of common aliases to
 *     canonical slugs. Warn-only: returns the original string when no
 *     mapping applies. Adding an alias here is a one-liner.
 *
 * @see docs/decisions/D0037-run-classification-and-ownership-taxonomy.md
 */
export declare const KNOWN_OWNER_TEAMS: readonly string[];
/**
 * Normalize a free-form team slug to its canonical form.
 *
 * - Trims and lowercases.
 * - Maps known aliases to canonical slugs.
 * - Passes unknown values through unchanged (warn-only at the UI layer).
 * - Returns `"unknown"` for empty input.
 */
export declare function normalizeOwnerTeam(value: string | undefined | null): string;
export declare function isKnownOwnerTeam(value: string): boolean;
/**
 * Lightweight team lookup against an in-memory team list.
 *
 * Consumers fetch team docs via GROQ then call this helper to resolve a
 * freeform `owner.team` string (D0037) into a Sanity reference. Unknown
 * strings return null. Known aliases (via OWNER_TEAM_ALIASES) are honored.
 *
 * Returning null is the cue for the UI to render an "unresolved team"
 * badge — not an error condition.
 */
export interface SlugLike {
    _id: string;
    slug: {
        current: string;
    };
}
export declare function resolveTeamRef(value: string | null | undefined, teams: readonly SlugLike[]): {
    _ref: string;
} | null;
