/** * Cookie configuration for storing user settings * - Max age: 30 days * - Client-side accessible for dynamic UI updates * - Domain-scoped in production for subdomain sharing */ export declare const settingsCookie: import("@remix-run/node").Cookie; /** * Fetches page settings from GraphQL backend with device/route-specific overrides * * @param request - The incoming HTTP request (used for forwarding cookies and headers) * @param overrideIdentifier - Optional override identifier (e.g., "[mobile]", "[desktop]", "[/dashboard][mobile]") * @returns GraphQL query result containing merged settings with overrides applied * * @remarks * - The GraphQL backend implements Redis caching for performance * - Settings are returned in a flat structure with bracket notation for overrides * - Example structure: { logo: '...', theme: '...', '[mobile]': { ... }, '[/dashboard][mobile]': { ... } } */ export declare function fetchPageSettingsWithFetch(request: Request, overrideIdentifier?: string): Promise<{ data: any; }>; /** * Universal settings loader utility for both Remix loaders and actions * * @param params - Object containing request, context, and params * @param params.request - The incoming HTTP request * @param params.context - Optional Remix load context * @param params.params - Optional route parameters * * @returns Object containing merged settings and cookie string * @returns settings - Fully merged settings (GraphQL + env + cookies + request payload) * @returns setCookie - Cookie string to set in response headers * * @remarks * This utility handles both loader (GET) and action (POST/PUT/DELETE) requests: * - **Loaders (GET)**: Fetches and merges settings from GraphQL, env, and cookies * - **Actions (POST/PUT)**: Additionally processes request payload and updates cookies * * Settings merge order (later sources override earlier ones): * 1. GraphQL backend settings (with device overrides) * 2. Environment variable settings * 3. Cookie settings (user preferences) * 4. Request payload (only for actions) * * @example * // In a Remix loader * export const loader = async ({ request }) => { * const { settings, setCookie } = await settingsLoaderUtil({ request }); * return json({ settings }, { headers: { 'Set-Cookie': setCookie } }); * }; * * @example * // In a Remix action * export const action = async ({ request }) => { * const { settings, setCookie } = await settingsLoaderUtil({ request }); * return json(settings, { headers: { 'Set-Cookie': setCookie } }); * }; */ export declare function settingsLoaderUtil({ request, context, params }: { request: any; context: any; params: any; }): Promise<{ settings: any; setCookie: string; }>; export declare function getDeviceType(userAgent: string): 'mobile' | 'desktop'; //# sourceMappingURL=UpdateSettings.server.d.ts.map