import type { Signal } from '../signals-api';
/**
 * Parse all cookies from `document.cookie` into a plain object.
 */
export declare function parseCookies(): Record<string, string>;
/**
 * Read a single cookie's value. Returns `null` when missing.
 */
export declare function getCookie(name: string): string | null;
/**
 * Write a cookie. No reactivity — use `useCookie()` for that.
 */
export declare function setCookie(name: string, value: string, options?: CookieOptions): void;
/**
 * Delete a cookie (sets max-age=0 and expires=epoch).
 */
export declare function removeCookie(name: string, options?: Pick<CookieOptions, 'path' | 'domain'>): void;
/**
 * Create a reactive Signal bound to a cookie. Mirrors `useLocalStorage`'s
 * shape: read with `c()`, write with `c.set(v)`. Setting to `''` deletes the
 * cookie. The signal is one-way (writes propagate to document.cookie via an
 * `effect`); cookies don't fire a 'storage' event, so cross-tab updates
 * aren't auto-reflected.
 *
 * @example
 * ```ts
 * const token = useCookie('auth-token', { maxAge: 60 * 60 * 24 * 7 })
 * token()           // read current value
 * token.set('xyz')  // persist
 * token.set('')     // delete
 * ```
 */
export declare function useCookie(name: string, options?: CookieOptions): Signal<string>;
/**
 * Snapshot of all currently-readable cookies as a plain object.
 */
export declare function useCookies(): Record<string, string>;
/**
 * Best-effort clear of every cookie visible to JavaScript. HttpOnly cookies
 * and cookies under a different path/domain won't be touched.
 */
export declare function clearCookies(options?: Pick<CookieOptions, 'path' | 'domain'>): void;
export declare interface CookieOptions {
  maxAge?: number
  expires?: Date | number | string
  path?: string
  domain?: string
  secure?: boolean
  httpOnly?: boolean
  sameSite?: 'strict' | 'lax' | 'none' | 'Strict' | 'Lax' | 'None'
  defaultValue?: string
  encode?: (value: string) => string
  decode?: (value: string) => string
}
