export type StreamKey = 'plat' | 'mat' | 'cmp' | 'surf' | 'qual'; export type DeprecationKind = 'export' | 'subpath' | 'prop' | 'prop-value' | 'css-var' | 'css-global' | 'peer' | 'dependency' | 'engine' | 'behavior' | 'cli' | 'data-attr' | 'asset'; export interface DeprecationEntry { id: `DEP-${'P' | 'M' | 'C' | 'S' | 'Q'}${number}`; kind: DeprecationKind; status: 'active' | 'planned'; entry: string; symbol: string; since: `4.${number}.${number}`; removeIn: '5.0.0' | '6.0.0'; replacement: string | null; codemod: CodemodId | null; automation: 'full' | 'mostly' | 'partial' | 'manual' | 'none'; breaking: `B${number}`; message: string; doc: `#dep-${string}`; compat?: string; exception?: 'security' | 'privacy' | 'crash' | 'legal' | 'honesty'; evidence?: string; } export type DeprecationFragment = readonly DeprecationEntry[]; export declare const CORE_CODEMODS: readonly ["imports-subpaths", "canonical-names", "prop-grammar", "dead-optical-props", "providers", "css-vars", "deps", "removed"]; export declare const AREA_CODEMODS: { readonly 'ai-chat': "surf"; readonly 'app-shell-slots': "surf"; readonly 'media-backdrops': "surf"; readonly 'reduced-motion-initial': "mat"; readonly 'motion-imports': "mat"; readonly 'motion-props': "mat"; }; export type CodemodId = (typeof CORE_CODEMODS)[number] | keyof typeof AREA_CODEMODS; export interface CodemodMappingFragment { renames?: Array<{ from: string; fromEntry: string; to: string; toEntry: string; compatOnly?: boolean; }>; props?: Array<{ component: string; from: string; to: string | null; values?: Record>; todo?: string; }>; cssVars?: Record<`--glass-${string}`, `--ag-${string}` | null>; removed?: Array<{ symbol: string; entry: string; reason: string; registryItem?: string; doc: string; }>; deps?: Array<{ pkg: string; range: string; when: string; }>; areaTransforms?: Array<{ id: keyof typeof AREA_CODEMODS; module: string; spec: string; }>; fixtures?: string[]; } export declare const TODO_MARKER: "// TODO(aura-glass 5): , see "; export interface SizeBudgetRow { id: string; import: string; limitBytes: number; kind: 'js' | 'css'; } export declare const DEFAULT_CEILINGS: { readonly subpathCssBytes: 8192; readonly stylesCssBytes: 35840; readonly tarballBytes: number; readonly nodeColdImportMs: 150; }; export declare const PROVISIONAL_ROWS: { readonly Button: 10240; readonly Dialog: 20480; readonly Select: 25600; readonly Table: 46080; readonly AiThreadMessageComposer: 25600; readonly MaterialJs: 3072; readonly SingleIcon: 1024; }; export interface PerfBudgetRow { subject: string; profile: 'mid-mobile' | 'desktop-120hz'; metric: 'frame-p95-ms' | 'long-tasks' | 'blurred-surfaces' | 'bci' | 'lcp-ms' | 'grade'; max: number | 'A' | 'B' | 'C'; provisional: boolean; } export type LaneId = 'L1' | 'L2' | 'L3' | 'L4' | 'L5' | 'L6' | 'L7' | 'L8' | 'L9' | 'L10' | 'L11' | 'L12' | 'L13' | 'L14'; export interface LaneRegistration { lane: LaneId; kind: 'node-script' | 'jest' | 'playwright' | 'story-subjects' | 'manual-record'; path: string; scope: 'pr' | 'main' | 'release' | 'nightly'; remote: boolean; failClosed: true; } export interface PlaywrightProjectFragment { name: `${StreamKey}:${string}`; testDir: string; testMatch?: string; use?: Record; } export interface CssFragment { file: string; layer: 'ag.compat' | 'ag.reset' | 'ag.tokens' | 'ag.material' | 'ag.components' | 'ag.a11y'; bundle: 'styles.css' | 'tokens.css' | 'material.css' | 'data.css' | 'date.css' | 'ai.css' | 'media.css' | 'app-shell.css' | 'backdrops.css' | 'charts.css' | 'compat/tokens.css' | 'compat/globals.css'; order?: number; a11y?: 'none'; } export interface SideEffectException { module: string; api?: string; reason: string; expires: string; } export interface ReviewItem { id: string; subject: string; criterion: 'specular-quality' | 'optical-hierarchy' | 'radius-rhythm' | 'one-hand' | 'other'; note?: string; } export interface LiteralsBaseline { version: 1; files: Record>>; } export interface A11yBaseline { version: 1; violations: Array<{ subject: string; rule: string; count: number; issue: string; }>; } /** C-16 / REQ-FIN-110: mirrors contracts/schemas/sr-record.schema.json. * Runtime validation additionally enforces SHA/date formats, positive integer * flagship values, nonempty evidence, and device/gesture fields for touch ATs. */ export interface SrRecord { sha: string; subject: string; flagship: number | null; stream: 'mat' | 'cmp' | 'surf'; pass: 'sr' | 'touch' | 'motion'; at: 'voiceover-macos' | 'voiceover-ios' | 'nvda-chrome' | 'talkback-chrome' | 'touch-ios' | 'touch-android'; atVersion: string; browser: string; browserVersion: string; os: string; osVersion: string; device?: string; tester: string; date: string; result: 'pass' | 'fail'; storybookArtifactUrl: string; notes?: string; steps: ReadonlyArray<{ action: string; expected: string; announced: string; pass: boolean; nameRoleValue?: string; stateChange?: string; openClose?: string; liveRegion?: string; gesture?: string; nonDragAlternative?: string; notes?: string; }>; } export type RegistryItemOwner = { id: string; type: 'registry:base' | 'registry:block' | 'registry:item'; owner: 'PLAT' | 'CMP' | 'SURF'; ga: boolean; }; export type FragmentKind = 'deprecations' | 'codemods' | 'size-budgets' | 'perf-budgets' | 'lanes' | 'playwright' | 'css' | 'side-effects' | 'review' | 'literals-baseline' | 'a11y-baseline'; //# sourceMappingURL=fragments.d.ts.map