export declare type CookieValue = string | object; export interface ICookies { [key: string]: CookieValue; } export interface ICookieServerContext { req: { cookies: ICookies; }; res: { setHeader(key: string, value: string | number | string[]): void; }; } export interface ICookieOptions extends ICookieAttributes { ctx?: ICookieServerContext; default?: CookieValue; } export interface ICookieAttributes { expires?: number | Date; path?: string; domain?: string; isSecure?: boolean; } export declare type CookiePropertyFunc = (value?: T | null, options?: ICookieOptions) => T | undefined; export declare type CookieProperty = CookiePropertyFunc & { key: string; isProp: boolean; options?: ICookieOptions; }; export interface ICookieChangedEvent { key: string; value?: CookieValue; action: 'UPDATE' | 'DELETE'; }