import type { ConfigProvider } from '@adonisjs/core/types'; import type { CookieOptions } from '@adonisjs/core/types/http'; import type { SessionConfig, FileStoreConfig, RedisStoreConfig, SessionStoreFactory, DynamoDBStoreConfig, DatabaseStoreConfig } from './types.ts'; type ConfigInput>> = Partial & { store: keyof KnownStores | 'memory'; stores: KnownStores; /** * Whether to clear the session cookie when the browser is closed. * When true, creates a session cookie that expires on browser close. * Note: Persisted session data continues to exist until it expires. */ clearWithBrowser?: boolean; cookie?: Omit, 'maxAge' | 'expires'>; }; /** * Resolved session configuration with all stores resolved */ type ResolvedConfig> = SessionConfig & { store: keyof KnownStores; stores: KnownStores; }; /** * Defines and validates session configuration with store setup. * Handles default values and store resolution. * * @param config - Session configuration with stores * * @example * import { defineConfig, stores } from '@adonisjs/session' * * export default defineConfig({ * enabled: true, * cookieName: 'adonis_session', * age: '2 hours', * store: 'cookie', * stores: { * cookie: stores.cookie(), * redis: stores.redis({ connection: 'main' }) * } * }) */ export declare function defineConfig>>(config: ConfigInput): ConfigProvider>; /** * Built-in session stores for different storage backends. * Each store provides a different persistence mechanism for session data. * * @example * import { stores } from '@adonisjs/session' * * // File store - stores on filesystem * stores.file({ location: './tmp/sessions' }) * * // Redis store - stores in Redis * stores.redis({ connection: 'main' }) * * // Cookie store - stores in encrypted cookies * stores.cookie() * * // DynamoDB store - stores in AWS DynamoDB * stores.dynamodb({ tableName: 'Sessions' }) */ export declare const stores: { file: (config: FileStoreConfig) => ConfigProvider; redis: (config: RedisStoreConfig) => ConfigProvider; cookie: () => ConfigProvider; dynamodb: (config: DynamoDBStoreConfig) => ConfigProvider; database: (config?: DatabaseStoreConfig) => ConfigProvider; }; export {};