export type CookieSameSite = 'Strict' | 'Lax' | 'None';
export type CookieOptions = {
    /**
     * Cookie path scope.
     *
     * @default '/'
     */
    path?: string;
    /**
     * Cookie domain scope (for example `.rio.cloud`).
     */
    domain?: string;
    /**
     * Absolute expiration date for the cookie.
     */
    expires?: Date | string;
    /**
     * Cookie lifetime in seconds.
     */
    maxAge?: number;
    /**
     * Cross-site cookie behavior.
     *
     * Possible values are:
     *
     * - `Strict`
     * - `Lax`
     * - `None`
     */
    sameSite?: CookieSameSite;
    /**
     * Adds the `Secure` flag so the cookie is sent over HTTPS only.
     */
    secure?: boolean;
};
export type UseCookiesResult = {
    /**
     * Sets a cookie with optional metadata.
     *
     * @param name - Cookie name.
     * @param value - Cookie value.
     * @param options - Additional cookie options.
     */
    setCookie: (name: string, value: string, options?: CookieOptions) => void;
    /**
     * Deletes a cookie by name.
     *
     * @param name - Cookie name.
     * @param options - Optional path/domain to target the correct cookie scope.
     */
    deleteCookie: (name: string, options?: Pick<CookieOptions, 'path' | 'domain'>) => void;
    /**
     * Returns true if the cookie exists.
     *
     * @param name - Cookie name.
     */
    hasCookie: (name: string) => boolean;
    /**
     * Reads a cookie value.
     *
     * @param name - Cookie name.
     */
    getCookie: (name: string) => string | undefined;
};
/**
 * Returns helpers to set, delete, and read browser cookies.
 *
 * @returns {UseCookiesResult} Cookie helper functions.
 *
 * @example
 * const { setCookie, deleteCookie, hasCookie, getCookie } = useCookies();
 *
 * setCookie('token', 'abc123', { path: '/', maxAge: 60 * 60 });
 * const isLoggedIn = hasCookie('token');
 * const token = getCookie('token');
 * deleteCookie('token');
 */
declare const useCookies: () => UseCookiesResult;
export default useCookies;
