import type { TreeContainer } from '../treeContainers'; import { SourcePath } from '../../common/types'; type TrailingSlash = 'always' | 'never' | 'auto'; type RedirectStatusCode = 301 | 302 | 307 | 308; export type UiBundleRewrite = { route?: string; rewrite?: string; }; export type UiBundleRedirect = { route?: string; redirect?: string; statusCode?: RedirectStatusCode; }; export type UiBundleHeaderKeyValue = { key?: string; value?: string; }; export type UiBundleHeaderRule = { source?: string; headers?: UiBundleHeaderKeyValue[]; }; export type UiBundleRouting = { rewrites?: UiBundleRewrite[]; redirects?: UiBundleRedirect[]; fallback?: string; trailingSlash?: TrailingSlash; fileBasedRouting?: boolean; }; export type UiBundleConfig = { outputDir?: string; routing?: UiBundleRouting; headers?: UiBundleHeaderRule[]; }; /** Basic shape check — use after field-level validation to narrow the type. */ export declare function isUiBundleConfig(value: unknown): value is UiBundleConfig; /** Validate ui-bundle.json contents. Checks structure first, then schema, then file existence. */ export declare function validateUiBundleJson(raw: Buffer, descriptorPath: string, contentPath: SourcePath, tree: TreeContainer): void; export {};