import type { InferInput, InferSchema } from "../../extensions/schema/index.js"; import type { SourceIntegrationPolicyConfig } from "../../integrations/source-policy.js"; type CorsOriginValidator = (origin: string) => boolean | string; export declare const getVeryfrontConfigSchema: () => import("../../internal-agents/schema.js").Schema; title: import("../../internal-agents/schema.js").Schema; description: import("../../internal-agents/schema.js").Schema; react: import("../../internal-agents/schema.js").Schema; }>> | undefined>; directories: import("../../internal-agents/schema.js").Schema; pages: import("../../internal-agents/schema.js").Schema; components: import("../../internal-agents/schema.js").Schema; ai: import("../../internal-agents/schema.js").Schema; }>> | undefined>; experimental: import("../../internal-agents/schema.js").Schema; precompileMDX: import("../../internal-agents/schema.js").Schema; rsc: import("../../internal-agents/schema.js").Schema; }>> | undefined>; router: import("../../internal-agents/schema.js").Schema<"app" | "pages" | undefined>; /** Path to the layout component (e.g., 'components/layout.tsx'), or false to disable */ layout: import("../../internal-agents/schema.js").Schema; /** Path to the app wrapper component (e.g., 'components/app.tsx'), or false to disable */ app: import("../../internal-agents/schema.js").Schema; theme: import("../../internal-agents/schema.js").Schema | undefined>; }>> | undefined>; build: import("../../internal-agents/schema.js").Schema; trailingSlash: import("../../internal-agents/schema.js").Schema; /** Bare npm package roots that the runtime resolves instead of bundling. */ serverExternalPackages: import("../../internal-agents/schema.js").Schema; /** * Generate static HTML for all routes during `veryfront build`. * Defaults to true; disabling it produces no pages, so only turn it * off for builds that intentionally skip static generation. */ ssg: import("../../internal-agents/schema.js").Schema; esbuild: import("../../internal-agents/schema.js").Schema; worker: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; cache: import("../../internal-agents/schema.js").Schema; bundleManifest: import("../../internal-agents/schema.js").Schema; redisUrl: import("../../internal-agents/schema.js").Schema; keyPrefix: import("../../internal-agents/schema.js").Schema; ttl: import("../../internal-agents/schema.js").Schema; enabled: import("../../internal-agents/schema.js").Schema; }>> | undefined>; render: import("../../internal-agents/schema.js").Schema; ttl: import("../../internal-agents/schema.js").Schema; maxEntries: import("../../internal-agents/schema.js").Schema; kvPath: import("../../internal-agents/schema.js").Schema; /** Legacy Redis connection settings retained for the built-in Redis backend. */ redisUrl: import("../../internal-agents/schema.js").Schema; redisKeyPrefix: import("../../internal-agents/schema.js").Schema; /** * Explicit contract for caching SSR responses that execute * request-aware project data hooks. Disabled unless opted in. */ public: import("../../internal-agents/schema.js").Schema; /** Request headers whose values are part of the public response identity. */ varyHeaders: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; /** * Query parameter handling for page cache keys. * Controls which URL query params affect cache key generation. * * Policies: * - "ignore-all": Ignore all query params (pages with ?utm_campaign=x share cache with /) * - "include-all": Include all query params (each unique query = separate cache) * - "include-list": Only include specified params in cache key * - "exclude-list": Exclude specified params (+ common tracking params like utm_*) (default) * * @example * // Ignore all marketing/tracking params (recommended for most sites) * cache: { queryParams: { policy: "exclude-list" } } * * @example * // Only vary cache by specific params * cache: { queryParams: { policy: "include-list", params: ["page", "sort"] } } */ queryParams: import("../../internal-agents/schema.js").Schema; }> | import("../../extensions/schema/schema-validator.js").InferShape<{ policy: import("../../internal-agents/schema.js").Schema<"include-all">; }> | import("../../extensions/schema/schema-validator.js").InferShape<{ policy: import("../../internal-agents/schema.js").Schema<"include-list">; params: import("../../internal-agents/schema.js").Schema; }> | import("../../extensions/schema/schema-validator.js").InferShape<{ policy: import("../../internal-agents/schema.js").Schema<"exclude-list" | undefined>; params: import("../../internal-agents/schema.js").Schema; }> | undefined>; }>> | undefined>; dev: import("../../internal-agents/schema.js").Schema; host: import("../../internal-agents/schema.js").Schema; open: import("../../internal-agents/schema.js").Schema; hmr: import("../../internal-agents/schema.js").Schema; hmrPort: import("../../internal-agents/schema.js").Schema; components: import("../../internal-agents/schema.js").Schema; moduleServerUrl: import("../../internal-agents/schema.js").Schema; }>> | undefined>; resolve: import("../../internal-agents/schema.js").Schema | undefined>; scopes: import("../../internal-agents/schema.js").Schema> | undefined>; }>> | undefined>; }>> | undefined>; security: import("../../internal-agents/schema.js").Schema; password: import("../../internal-agents/schema.js").Schema; realm: import("../../internal-agents/schema.js").Schema; }> | undefined>; bearer: import("../../internal-agents/schema.js").Schema; }> | undefined>; oidc: import("../../internal-agents/schema.js").Schema; clientIdEnvVar: import("../../internal-agents/schema.js").Schema; clientSecretEnvVar: import("../../internal-agents/schema.js").Schema; sessionSecretEnvVar: import("../../internal-agents/schema.js").Schema; scopes: import("../../internal-agents/schema.js").Schema; claims: import("../../internal-agents/schema.js").Schema; name: import("../../internal-agents/schema.js").Schema; groups: import("../../internal-agents/schema.js").Schema; roles: import("../../internal-agents/schema.js").Schema; }>> | undefined>; signingAlgorithms: import("../../internal-agents/schema.js").Schema<("RS256" | "RS384" | "RS512" | "PS256" | "PS384" | "PS512" | "ES256" | "ES384" | "ES512")[] | undefined>; trustedEndpointOrigins: import("../../internal-agents/schema.js").Schema; sessionTtlSeconds: import("../../internal-agents/schema.js").Schema; discoveryCacheTtlSeconds: import("../../internal-agents/schema.js").Schema; cookieName: import("../../internal-agents/schema.js").Schema; }> | undefined>; trustedProxy: import("../../internal-agents/schema.js").Schema; headers: import("../../internal-agents/schema.js").Schema; email: import("../../internal-agents/schema.js").Schema; name: import("../../internal-agents/schema.js").Schema; groups: import("../../internal-agents/schema.js").Schema; roles: import("../../internal-agents/schema.js").Schema; }>>; }> | undefined>; }>> | undefined>; /** * Extra CSP sources, merged into the platform's baseline policy. * * Additive: `{ fontSrc: ["https://fonts.gstatic.com"] }` keeps every * default and adds that origin. `null` drops the platform's optional * sources for one directive (e.g. `styleSrc: null` removes * `'unsafe-inline'`) while keeping the ones the renderer requires. */ csp: import("../../internal-agents/schema.js").Schema | undefined>; remoteHosts: import("../../internal-agents/schema.js").Schema; /** * Restrict project redirects to the request origin and exact allowed * HTTP(S) origins. Omit this policy to preserve unrestricted redirect * behavior. An empty allowlist permits same-origin redirects only. */ redirects: import("../../internal-agents/schema.js").Schema; }> | undefined>; cors: import("../../internal-agents/schema.js").Schema; credentials: import("../../internal-agents/schema.js").Schema; methods: import("../../internal-agents/schema.js").Schema; allowedHeaders: import("../../internal-agents/schema.js").Schema; exposedHeaders: import("../../internal-agents/schema.js").Schema; maxAge: import("../../internal-agents/schema.js").Schema; }> | undefined>; /** * CSRF protection using the double-submit cookie pattern. * On by default in every environment, local development included. * Pass an object to customize it, or `false` to switch it off. * * Every request that is not GET, HEAD, or OPTIONS must include an * `x-csrf-token` header matching the origin's default CSRF cookie. * Veryfront uses `__Host-vf_csrf` on HTTPS and loopback origins, and * `vf_csrf` on plain-HTTP non-loopback origins. The cookie is set * automatically on HTML document responses. * Custom names must use HTTP token syntax. Exclusions must be * canonical absolute URL paths without queries, fragments, or * trailing slashes. * * Server Actions (`/_veryfront/rsc/action`) are CSRF-protected; * client code must forward the cookie value as the header. CSRF is * separate from the required `RscActionAuthorizationProvider` * extension contract and does not replace action authorization. */ csrf: import("../../internal-agents/schema.js").Schema; headerName: import("../../internal-agents/schema.js").Schema; excludePaths: import("../../internal-agents/schema.js").Schema; ttlSec: import("../../internal-agents/schema.js").Schema; }> | undefined>; coop: import("../../internal-agents/schema.js").Schema<"same-origin" | "same-origin-allow-popups" | "unsafe-none" | undefined>; corp: import("../../internal-agents/schema.js").Schema<"same-origin" | "same-site" | "cross-origin" | undefined>; coep: import("../../internal-agents/schema.js").Schema<"unsafe-none" | "require-corp" | undefined>; /** * Restrict module imports to specific directories (opt-in security). * When not set, users can import from any directory in the project. * When set, only imports from these directories are allowed; an * explicit empty array denies imports from every project directory. * @example ["app", "pages", "components", "lib", "src", "utils"] */ allowedImportDirs: import("../../internal-agents/schema.js").Schema; }>> | undefined>; middleware: import("../../internal-agents/schema.js").Schema; }>> | undefined>; theming: import("../../internal-agents/schema.js").Schema; logoHtml: import("../../internal-agents/schema.js").Schema; }>> | undefined>; assetPipeline: import("../../internal-agents/schema.js").Schema; projectDir: import("../../internal-agents/schema.js").Schema; formats: import("../../internal-agents/schema.js").Schema<("webp" | "avif" | "jpeg" | "png")[] | undefined>; sizes: import("../../internal-agents/schema.js").Schema; quality: import("../../internal-agents/schema.js").Schema; inputDir: import("../../internal-agents/schema.js").Schema; outputDir: import("../../internal-agents/schema.js").Schema; preserveOriginal: import("../../internal-agents/schema.js").Schema; }>> | undefined>; css: import("../../internal-agents/schema.js").Schema; projectDir: import("../../internal-agents/schema.js").Schema; minify: import("../../internal-agents/schema.js").Schema; autoprefixer: import("../../internal-agents/schema.js").Schema; purge: import("../../internal-agents/schema.js").Schema; criticalCSS: import("../../internal-agents/schema.js").Schema; inputFiles: import("../../internal-agents/schema.js").Schema; inputDir: import("../../internal-agents/schema.js").Schema; outputDir: import("../../internal-agents/schema.js").Schema; browsers: import("../../internal-agents/schema.js").Schema; purgeContent: import("../../internal-agents/schema.js").Schema; purgeSafelist: import("../../internal-agents/schema.js").Schema; sourceMap: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; observability: import("../../internal-agents/schema.js").Schema; exporter: import("../../internal-agents/schema.js").Schema<"console" | "jaeger" | "zipkin" | "otlp" | undefined>; endpoint: import("../../internal-agents/schema.js").Schema; serviceName: import("../../internal-agents/schema.js").Schema; sampleRate: import("../../internal-agents/schema.js").Schema; }>> | undefined>; metrics: import("../../internal-agents/schema.js").Schema; exporter: import("../../internal-agents/schema.js").Schema<"console" | "otlp" | "prometheus" | undefined>; endpoint: import("../../internal-agents/schema.js").Schema; prefix: import("../../internal-agents/schema.js").Schema; collectInterval: import("../../internal-agents/schema.js").Schema; }>> | undefined>; logging: import("../../internal-agents/schema.js").Schema; path: import("../../internal-agents/schema.js").Schema; maxSize: import("../../internal-agents/schema.js").Schema; /** Total retained files, including the active file. */ maxFiles: import("../../internal-agents/schema.js").Schema; level: import("../../internal-agents/schema.js").Schema<"debug" | "info" | "warn" | "error" | undefined>; format: import("../../internal-agents/schema.js").Schema<"json" | "text" | undefined>; }>> | undefined>; }>> | undefined>; }>> | undefined>; search: import("../../internal-agents/schema.js").Schema; embedding: import("../../internal-agents/schema.js").Schema; model: import("../../internal-agents/schema.js").Schema; dimension: import("../../internal-agents/schema.js").Schema<1024 | 4096 | 768 | 1536 | 3072 | undefined>; apiKey: import("../../internal-agents/schema.js").Schema; batchSize: import("../../internal-agents/schema.js").Schema; }>> | undefined>; chunking: import("../../internal-agents/schema.js").Schema; overlapTokens: import("../../internal-agents/schema.js").Schema; include: import("../../internal-agents/schema.js").Schema; exclude: import("../../internal-agents/schema.js").Schema; }>> | undefined>; autoIndex: import("../../internal-agents/schema.js").Schema; }>> | undefined>; fs: import("../../internal-agents/schema.js").Schema; local: import("../../internal-agents/schema.js").Schema; }>> | undefined>; veryfront: import("../../internal-agents/schema.js").Schema; /** API token - optional in proxy mode (token provided per-request via headers) */ apiToken: import("../../internal-agents/schema.js").Schema; /** Project slug - optional in proxy mode (slug provided per-request via headers) */ projectSlug: import("../../internal-agents/schema.js").Schema; /** Enable proxy mode for multi-project handling (tokens/slugs from headers) */ proxyMode: import("../../internal-agents/schema.js").Schema; /** Production mode - fetch from releases instead of draft files */ productionMode: import("../../internal-agents/schema.js").Schema; cache: import("../../internal-agents/schema.js").Schema; ttl: import("../../internal-agents/schema.js").Schema; maxSize: import("../../internal-agents/schema.js").Schema; maxMemory: import("../../internal-agents/schema.js").Schema; }>> | undefined>; retry: import("../../internal-agents/schema.js").Schema; initialDelay: import("../../internal-agents/schema.js").Schema; maxDelay: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; memory: import("../../internal-agents/schema.js").Schema> | undefined>; }>> | undefined>; github: import("../../internal-agents/schema.js").Schema; /** Repository owner (user or organization) */ owner: import("../../internal-agents/schema.js").Schema; /** Repository name */ repo: import("../../internal-agents/schema.js").Schema; /** Branch, tag, or commit SHA (default: "main") */ ref: import("../../internal-agents/schema.js").Schema; cache: import("../../internal-agents/schema.js").Schema; ttl: import("../../internal-agents/schema.js").Schema; maxSize: import("../../internal-agents/schema.js").Schema; maxMemory: import("../../internal-agents/schema.js").Schema; }>> | undefined>; retry: import("../../internal-agents/schema.js").Schema; initialDelay: import("../../internal-agents/schema.js").Schema; maxDelay: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }> | undefined>; }>> | undefined>; ai: import("../../internal-agents/schema.js").Schema; providers: import("../../internal-agents/schema.js").Schema> | undefined>; tools: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; agents: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; skills: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; resources: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; prompts: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; workflows: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; work: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; tasks: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; schedules: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; webhooks: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; evals: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; mcp: import("../../internal-agents/schema.js").Schema; port: import("../../internal-agents/schema.js").Schema; expose: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; client: import("../../internal-agents/schema.js").Schema; /** CDN options when moduleResolution is 'cdn' */ cdn: import("../../internal-agents/schema.js").Schema; /** 'auto' detects from package.json, or pin specific versions */ versions: import("../../internal-agents/schema.js").Schema<"auto" | import("../../extensions/schema/schema-validator.js").InferShape<{ react: import("../../internal-agents/schema.js").Schema; veryfront: import("../../internal-agents/schema.js").Schema; }> | undefined>; }>> | undefined>; }>> | undefined>; /** CLI generate command preferences */ generate: import("../../internal-agents/schema.js").Schema; }>> | undefined>; /** Provider-neutral stylesheet selection for CSS processor extensions. */ styles: import("../../internal-agents/schema.js").Schema; }>> | undefined>; /** * Tailwind-specific authoring retained for existing projects. New * provider-neutral stylesheet selection should use `styles`. */ tailwind: import("../../internal-agents/schema.js").Schema; plugins: import("../../internal-agents/schema.js").Schema<("forms" | "typography" | "aspect-ratio" | "container-queries")[] | undefined>; theme: import("../../internal-agents/schema.js").Schema | undefined>; }>> | undefined>; customCSS: import("../../internal-agents/schema.js").Schema; }>> | undefined>; /** * Optional source-owned integration restrictions. * * This allowlist only narrows capabilities selected by the agent and * granted by the control plane. It does not enable integrations or * configure credential ownership. */ integrations: import("../../internal-agents/schema.js").Schema; }>>>; }> | undefined>; /** * Extensions registered for this project. * * Each entry is either a fully-materialized `Extension` object or a * disable directive `{ name, enabled: false }` that vetoes an extension * discovered from a lower-priority source. The runtime type is * tightened at the `veryfront/extensions` barrel — we keep this as * `v.unknown()` here to avoid pulling the extensions module into the * config layer (would introduce a circular import). */ extensions: import("../../internal-agents/schema.js").Schema; /** OpenAPI documentation configuration */ openapi: import("../../internal-agents/schema.js").Schema; /** Enable interactive docs page using Scalar (default: true) */ docs: import("../../internal-agents/schema.js").Schema; /** API title for OpenAPI info section */ title: import("../../internal-agents/schema.js").Schema; /** API version (default: "1.0.0") */ version: import("../../internal-agents/schema.js").Schema; /** API description */ description: import("../../internal-agents/schema.js").Schema; /** Custom path configuration */ paths: import("../../internal-agents/schema.js").Schema; /** Path for YAML spec (default: "/_openapi.yaml") */ yaml: import("../../internal-agents/schema.js").Schema; /** Path for interactive docs (default: "/_docs") */ docs: import("../../internal-agents/schema.js").Schema; }>> | undefined>; /** MCP integration configuration */ mcp: import("../../internal-agents/schema.js").Schema; /** Auto-generate MCP tools from API routes (default: true) */ tools: import("../../internal-agents/schema.js").Schema; /** Tool naming prefix (default: "api") - tools named as prefix:operationId */ toolPrefix: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; }>>>; export declare const veryfrontConfigSchema: import("../../internal-agents/schema.js").Schema; title: import("../../internal-agents/schema.js").Schema; description: import("../../internal-agents/schema.js").Schema; react: import("../../internal-agents/schema.js").Schema; }>> | undefined>; directories: import("../../internal-agents/schema.js").Schema; pages: import("../../internal-agents/schema.js").Schema; components: import("../../internal-agents/schema.js").Schema; ai: import("../../internal-agents/schema.js").Schema; }>> | undefined>; experimental: import("../../internal-agents/schema.js").Schema; precompileMDX: import("../../internal-agents/schema.js").Schema; rsc: import("../../internal-agents/schema.js").Schema; }>> | undefined>; router: import("../../internal-agents/schema.js").Schema<"app" | "pages" | undefined>; /** Path to the layout component (e.g., 'components/layout.tsx'), or false to disable */ layout: import("../../internal-agents/schema.js").Schema; /** Path to the app wrapper component (e.g., 'components/app.tsx'), or false to disable */ app: import("../../internal-agents/schema.js").Schema; theme: import("../../internal-agents/schema.js").Schema | undefined>; }>> | undefined>; build: import("../../internal-agents/schema.js").Schema; trailingSlash: import("../../internal-agents/schema.js").Schema; /** Bare npm package roots that the runtime resolves instead of bundling. */ serverExternalPackages: import("../../internal-agents/schema.js").Schema; /** * Generate static HTML for all routes during `veryfront build`. * Defaults to true; disabling it produces no pages, so only turn it * off for builds that intentionally skip static generation. */ ssg: import("../../internal-agents/schema.js").Schema; esbuild: import("../../internal-agents/schema.js").Schema; worker: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; cache: import("../../internal-agents/schema.js").Schema; bundleManifest: import("../../internal-agents/schema.js").Schema; redisUrl: import("../../internal-agents/schema.js").Schema; keyPrefix: import("../../internal-agents/schema.js").Schema; ttl: import("../../internal-agents/schema.js").Schema; enabled: import("../../internal-agents/schema.js").Schema; }>> | undefined>; render: import("../../internal-agents/schema.js").Schema; ttl: import("../../internal-agents/schema.js").Schema; maxEntries: import("../../internal-agents/schema.js").Schema; kvPath: import("../../internal-agents/schema.js").Schema; /** Legacy Redis connection settings retained for the built-in Redis backend. */ redisUrl: import("../../internal-agents/schema.js").Schema; redisKeyPrefix: import("../../internal-agents/schema.js").Schema; /** * Explicit contract for caching SSR responses that execute * request-aware project data hooks. Disabled unless opted in. */ public: import("../../internal-agents/schema.js").Schema; /** Request headers whose values are part of the public response identity. */ varyHeaders: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; /** * Query parameter handling for page cache keys. * Controls which URL query params affect cache key generation. * * Policies: * - "ignore-all": Ignore all query params (pages with ?utm_campaign=x share cache with /) * - "include-all": Include all query params (each unique query = separate cache) * - "include-list": Only include specified params in cache key * - "exclude-list": Exclude specified params (+ common tracking params like utm_*) (default) * * @example * // Ignore all marketing/tracking params (recommended for most sites) * cache: { queryParams: { policy: "exclude-list" } } * * @example * // Only vary cache by specific params * cache: { queryParams: { policy: "include-list", params: ["page", "sort"] } } */ queryParams: import("../../internal-agents/schema.js").Schema; }> | import("../../extensions/schema/schema-validator.js").InferShape<{ policy: import("../../internal-agents/schema.js").Schema<"include-all">; }> | import("../../extensions/schema/schema-validator.js").InferShape<{ policy: import("../../internal-agents/schema.js").Schema<"include-list">; params: import("../../internal-agents/schema.js").Schema; }> | import("../../extensions/schema/schema-validator.js").InferShape<{ policy: import("../../internal-agents/schema.js").Schema<"exclude-list" | undefined>; params: import("../../internal-agents/schema.js").Schema; }> | undefined>; }>> | undefined>; dev: import("../../internal-agents/schema.js").Schema; host: import("../../internal-agents/schema.js").Schema; open: import("../../internal-agents/schema.js").Schema; hmr: import("../../internal-agents/schema.js").Schema; hmrPort: import("../../internal-agents/schema.js").Schema; components: import("../../internal-agents/schema.js").Schema; moduleServerUrl: import("../../internal-agents/schema.js").Schema; }>> | undefined>; resolve: import("../../internal-agents/schema.js").Schema | undefined>; scopes: import("../../internal-agents/schema.js").Schema> | undefined>; }>> | undefined>; }>> | undefined>; security: import("../../internal-agents/schema.js").Schema; password: import("../../internal-agents/schema.js").Schema; realm: import("../../internal-agents/schema.js").Schema; }> | undefined>; bearer: import("../../internal-agents/schema.js").Schema; }> | undefined>; oidc: import("../../internal-agents/schema.js").Schema; clientIdEnvVar: import("../../internal-agents/schema.js").Schema; clientSecretEnvVar: import("../../internal-agents/schema.js").Schema; sessionSecretEnvVar: import("../../internal-agents/schema.js").Schema; scopes: import("../../internal-agents/schema.js").Schema; claims: import("../../internal-agents/schema.js").Schema; name: import("../../internal-agents/schema.js").Schema; groups: import("../../internal-agents/schema.js").Schema; roles: import("../../internal-agents/schema.js").Schema; }>> | undefined>; signingAlgorithms: import("../../internal-agents/schema.js").Schema<("RS256" | "RS384" | "RS512" | "PS256" | "PS384" | "PS512" | "ES256" | "ES384" | "ES512")[] | undefined>; trustedEndpointOrigins: import("../../internal-agents/schema.js").Schema; sessionTtlSeconds: import("../../internal-agents/schema.js").Schema; discoveryCacheTtlSeconds: import("../../internal-agents/schema.js").Schema; cookieName: import("../../internal-agents/schema.js").Schema; }> | undefined>; trustedProxy: import("../../internal-agents/schema.js").Schema; headers: import("../../internal-agents/schema.js").Schema; email: import("../../internal-agents/schema.js").Schema; name: import("../../internal-agents/schema.js").Schema; groups: import("../../internal-agents/schema.js").Schema; roles: import("../../internal-agents/schema.js").Schema; }>>; }> | undefined>; }>> | undefined>; /** * Extra CSP sources, merged into the platform's baseline policy. * * Additive: `{ fontSrc: ["https://fonts.gstatic.com"] }` keeps every * default and adds that origin. `null` drops the platform's optional * sources for one directive (e.g. `styleSrc: null` removes * `'unsafe-inline'`) while keeping the ones the renderer requires. */ csp: import("../../internal-agents/schema.js").Schema | undefined>; remoteHosts: import("../../internal-agents/schema.js").Schema; /** * Restrict project redirects to the request origin and exact allowed * HTTP(S) origins. Omit this policy to preserve unrestricted redirect * behavior. An empty allowlist permits same-origin redirects only. */ redirects: import("../../internal-agents/schema.js").Schema; }> | undefined>; cors: import("../../internal-agents/schema.js").Schema; credentials: import("../../internal-agents/schema.js").Schema; methods: import("../../internal-agents/schema.js").Schema; allowedHeaders: import("../../internal-agents/schema.js").Schema; exposedHeaders: import("../../internal-agents/schema.js").Schema; maxAge: import("../../internal-agents/schema.js").Schema; }> | undefined>; /** * CSRF protection using the double-submit cookie pattern. * On by default in every environment, local development included. * Pass an object to customize it, or `false` to switch it off. * * Every request that is not GET, HEAD, or OPTIONS must include an * `x-csrf-token` header matching the origin's default CSRF cookie. * Veryfront uses `__Host-vf_csrf` on HTTPS and loopback origins, and * `vf_csrf` on plain-HTTP non-loopback origins. The cookie is set * automatically on HTML document responses. * Custom names must use HTTP token syntax. Exclusions must be * canonical absolute URL paths without queries, fragments, or * trailing slashes. * * Server Actions (`/_veryfront/rsc/action`) are CSRF-protected; * client code must forward the cookie value as the header. CSRF is * separate from the required `RscActionAuthorizationProvider` * extension contract and does not replace action authorization. */ csrf: import("../../internal-agents/schema.js").Schema; headerName: import("../../internal-agents/schema.js").Schema; excludePaths: import("../../internal-agents/schema.js").Schema; ttlSec: import("../../internal-agents/schema.js").Schema; }> | undefined>; coop: import("../../internal-agents/schema.js").Schema<"same-origin" | "same-origin-allow-popups" | "unsafe-none" | undefined>; corp: import("../../internal-agents/schema.js").Schema<"same-origin" | "same-site" | "cross-origin" | undefined>; coep: import("../../internal-agents/schema.js").Schema<"unsafe-none" | "require-corp" | undefined>; /** * Restrict module imports to specific directories (opt-in security). * When not set, users can import from any directory in the project. * When set, only imports from these directories are allowed; an * explicit empty array denies imports from every project directory. * @example ["app", "pages", "components", "lib", "src", "utils"] */ allowedImportDirs: import("../../internal-agents/schema.js").Schema; }>> | undefined>; middleware: import("../../internal-agents/schema.js").Schema; }>> | undefined>; theming: import("../../internal-agents/schema.js").Schema; logoHtml: import("../../internal-agents/schema.js").Schema; }>> | undefined>; assetPipeline: import("../../internal-agents/schema.js").Schema; projectDir: import("../../internal-agents/schema.js").Schema; formats: import("../../internal-agents/schema.js").Schema<("webp" | "avif" | "jpeg" | "png")[] | undefined>; sizes: import("../../internal-agents/schema.js").Schema; quality: import("../../internal-agents/schema.js").Schema; inputDir: import("../../internal-agents/schema.js").Schema; outputDir: import("../../internal-agents/schema.js").Schema; preserveOriginal: import("../../internal-agents/schema.js").Schema; }>> | undefined>; css: import("../../internal-agents/schema.js").Schema; projectDir: import("../../internal-agents/schema.js").Schema; minify: import("../../internal-agents/schema.js").Schema; autoprefixer: import("../../internal-agents/schema.js").Schema; purge: import("../../internal-agents/schema.js").Schema; criticalCSS: import("../../internal-agents/schema.js").Schema; inputFiles: import("../../internal-agents/schema.js").Schema; inputDir: import("../../internal-agents/schema.js").Schema; outputDir: import("../../internal-agents/schema.js").Schema; browsers: import("../../internal-agents/schema.js").Schema; purgeContent: import("../../internal-agents/schema.js").Schema; purgeSafelist: import("../../internal-agents/schema.js").Schema; sourceMap: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; observability: import("../../internal-agents/schema.js").Schema; exporter: import("../../internal-agents/schema.js").Schema<"console" | "jaeger" | "zipkin" | "otlp" | undefined>; endpoint: import("../../internal-agents/schema.js").Schema; serviceName: import("../../internal-agents/schema.js").Schema; sampleRate: import("../../internal-agents/schema.js").Schema; }>> | undefined>; metrics: import("../../internal-agents/schema.js").Schema; exporter: import("../../internal-agents/schema.js").Schema<"console" | "otlp" | "prometheus" | undefined>; endpoint: import("../../internal-agents/schema.js").Schema; prefix: import("../../internal-agents/schema.js").Schema; collectInterval: import("../../internal-agents/schema.js").Schema; }>> | undefined>; logging: import("../../internal-agents/schema.js").Schema; path: import("../../internal-agents/schema.js").Schema; maxSize: import("../../internal-agents/schema.js").Schema; /** Total retained files, including the active file. */ maxFiles: import("../../internal-agents/schema.js").Schema; level: import("../../internal-agents/schema.js").Schema<"debug" | "info" | "warn" | "error" | undefined>; format: import("../../internal-agents/schema.js").Schema<"json" | "text" | undefined>; }>> | undefined>; }>> | undefined>; }>> | undefined>; search: import("../../internal-agents/schema.js").Schema; embedding: import("../../internal-agents/schema.js").Schema; model: import("../../internal-agents/schema.js").Schema; dimension: import("../../internal-agents/schema.js").Schema<1024 | 4096 | 768 | 1536 | 3072 | undefined>; apiKey: import("../../internal-agents/schema.js").Schema; batchSize: import("../../internal-agents/schema.js").Schema; }>> | undefined>; chunking: import("../../internal-agents/schema.js").Schema; overlapTokens: import("../../internal-agents/schema.js").Schema; include: import("../../internal-agents/schema.js").Schema; exclude: import("../../internal-agents/schema.js").Schema; }>> | undefined>; autoIndex: import("../../internal-agents/schema.js").Schema; }>> | undefined>; fs: import("../../internal-agents/schema.js").Schema; local: import("../../internal-agents/schema.js").Schema; }>> | undefined>; veryfront: import("../../internal-agents/schema.js").Schema; /** API token - optional in proxy mode (token provided per-request via headers) */ apiToken: import("../../internal-agents/schema.js").Schema; /** Project slug - optional in proxy mode (slug provided per-request via headers) */ projectSlug: import("../../internal-agents/schema.js").Schema; /** Enable proxy mode for multi-project handling (tokens/slugs from headers) */ proxyMode: import("../../internal-agents/schema.js").Schema; /** Production mode - fetch from releases instead of draft files */ productionMode: import("../../internal-agents/schema.js").Schema; cache: import("../../internal-agents/schema.js").Schema; ttl: import("../../internal-agents/schema.js").Schema; maxSize: import("../../internal-agents/schema.js").Schema; maxMemory: import("../../internal-agents/schema.js").Schema; }>> | undefined>; retry: import("../../internal-agents/schema.js").Schema; initialDelay: import("../../internal-agents/schema.js").Schema; maxDelay: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; memory: import("../../internal-agents/schema.js").Schema> | undefined>; }>> | undefined>; github: import("../../internal-agents/schema.js").Schema; /** Repository owner (user or organization) */ owner: import("../../internal-agents/schema.js").Schema; /** Repository name */ repo: import("../../internal-agents/schema.js").Schema; /** Branch, tag, or commit SHA (default: "main") */ ref: import("../../internal-agents/schema.js").Schema; cache: import("../../internal-agents/schema.js").Schema; ttl: import("../../internal-agents/schema.js").Schema; maxSize: import("../../internal-agents/schema.js").Schema; maxMemory: import("../../internal-agents/schema.js").Schema; }>> | undefined>; retry: import("../../internal-agents/schema.js").Schema; initialDelay: import("../../internal-agents/schema.js").Schema; maxDelay: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }> | undefined>; }>> | undefined>; ai: import("../../internal-agents/schema.js").Schema; providers: import("../../internal-agents/schema.js").Schema> | undefined>; tools: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; agents: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; skills: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; resources: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; prompts: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; workflows: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; work: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; tasks: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; schedules: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; webhooks: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; evals: import("../../internal-agents/schema.js").Schema; paths: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; mcp: import("../../internal-agents/schema.js").Schema; port: import("../../internal-agents/schema.js").Schema; expose: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; client: import("../../internal-agents/schema.js").Schema; /** CDN options when moduleResolution is 'cdn' */ cdn: import("../../internal-agents/schema.js").Schema; /** 'auto' detects from package.json, or pin specific versions */ versions: import("../../internal-agents/schema.js").Schema<"auto" | import("../../extensions/schema/schema-validator.js").InferShape<{ react: import("../../internal-agents/schema.js").Schema; veryfront: import("../../internal-agents/schema.js").Schema; }> | undefined>; }>> | undefined>; }>> | undefined>; /** CLI generate command preferences */ generate: import("../../internal-agents/schema.js").Schema; }>> | undefined>; /** Provider-neutral stylesheet selection for CSS processor extensions. */ styles: import("../../internal-agents/schema.js").Schema; }>> | undefined>; /** * Tailwind-specific authoring retained for existing projects. New * provider-neutral stylesheet selection should use `styles`. */ tailwind: import("../../internal-agents/schema.js").Schema; plugins: import("../../internal-agents/schema.js").Schema<("forms" | "typography" | "aspect-ratio" | "container-queries")[] | undefined>; theme: import("../../internal-agents/schema.js").Schema | undefined>; }>> | undefined>; customCSS: import("../../internal-agents/schema.js").Schema; }>> | undefined>; /** * Optional source-owned integration restrictions. * * This allowlist only narrows capabilities selected by the agent and * granted by the control plane. It does not enable integrations or * configure credential ownership. */ integrations: import("../../internal-agents/schema.js").Schema; }>>>; }> | undefined>; /** * Extensions registered for this project. * * Each entry is either a fully-materialized `Extension` object or a * disable directive `{ name, enabled: false }` that vetoes an extension * discovered from a lower-priority source. The runtime type is * tightened at the `veryfront/extensions` barrel — we keep this as * `v.unknown()` here to avoid pulling the extensions module into the * config layer (would introduce a circular import). */ extensions: import("../../internal-agents/schema.js").Schema; /** OpenAPI documentation configuration */ openapi: import("../../internal-agents/schema.js").Schema; /** Enable interactive docs page using Scalar (default: true) */ docs: import("../../internal-agents/schema.js").Schema; /** API title for OpenAPI info section */ title: import("../../internal-agents/schema.js").Schema; /** API version (default: "1.0.0") */ version: import("../../internal-agents/schema.js").Schema; /** API description */ description: import("../../internal-agents/schema.js").Schema; /** Custom path configuration */ paths: import("../../internal-agents/schema.js").Schema; /** Path for YAML spec (default: "/_openapi.yaml") */ yaml: import("../../internal-agents/schema.js").Schema; /** Path for interactive docs (default: "/_docs") */ docs: import("../../internal-agents/schema.js").Schema; }>> | undefined>; /** MCP integration configuration */ mcp: import("../../internal-agents/schema.js").Schema; /** Auto-generate MCP tools from API routes (default: true) */ tools: import("../../internal-agents/schema.js").Schema; /** Tool naming prefix (default: "api") - tools named as prefix:operationId */ toolPrefix: import("../../internal-agents/schema.js").Schema; }>> | undefined>; }>> | undefined>; }>>>; type InferredVeryfrontConfig = InferSchema>; type InferredVeryfrontConfigInput = InferInput>; /** Validated project configuration with catalog-backed integration authoring. */ export type VeryfrontConfig = Omit & { integrations?: SourceIntegrationPolicyConfig; }; /** User-authored configuration accepted before schema transforms run. */ export type VeryfrontConfigInput = Omit & { integrations?: SourceIntegrationPolicyConfig; }; export declare function validateVeryfrontConfig(input: unknown): VeryfrontConfig; export declare function findUnknownTopLevelKeys(input: Record): string[]; export {}; //# sourceMappingURL=config.schema.d.ts.map