import { QPQConfigAdvancedSettings, QPQConfigSetting } from 'quidproquo-core'; import { ResponseSecurityHeaders } from '../types/ResponseSecurityHeaders'; export interface WebDomainOptions { subDomainName?: string; onRootDomain: boolean; rootDomain: string; } export interface StorageDriveOptions { sourceStorageDrive?: string; autoUpload: boolean; } export interface QPQConfigAdvancedWebEntrySettings extends QPQConfigAdvancedSettings { buildPath?: string; storageDrive?: StorageDriveOptions; domain: WebDomainOptions; cacheSettingsName?: string; indexRoot?: string; ignoreCache?: string[]; compressFiles?: boolean; cloudflareApiKeySecretName?: string; securityHeaders?: ResponseSecurityHeaders; /** * Browser origins allowed to cross-origin `fetch` this web entry's (public, * static) assets. Leave undefined to scope to this service's own domain * (`https://` + `https://*.`); pass `['*']` to allow any * origin (e.g. serving assets as a public CDN / cross-origin fonts). */ corsAllowedOrigins?: string[]; } export interface WebEntryQPQWebServerConfigSetting extends QPQConfigSetting { name: string; indexRoot: string; storageDrive: StorageDriveOptions; domain: WebDomainOptions; buildPath?: string; cacheSettingsName?: string; ignoreCache: string[]; compressFiles: boolean; cloudflareApiKeySecretName?: string; securityHeaders?: ResponseSecurityHeaders; corsAllowedOrigins?: string[]; } export declare const defineWebEntry: (name: string, options: QPQConfigAdvancedWebEntrySettings) => WebEntryQPQWebServerConfigSetting;