import type { Cookie } from "./cookie.js";
/**
 * A child cookie jar that provides authenticated encryption for its cookies.
 *
 * A _private_ child jar signs and encrypts all the cookies added to it and
 * verifies and decrypts cookies retrieved from it. Any cookies stored in the
 * `PrivateJar` are simultaneously assured confidentiality, integrity and
 * authenticity. In other words, clients cannot discover nor tamper with the
 * contents of a cookie, nor can they fabricate cookie data.
 */
export declare class PrivateJar {
    private readonly parent;
    private readonly key;
    /**
     * Returns a {@link Cookie} with the name `name` from the parent jar.
     *
     * It authenticates and decrypts the cookie's value, returning a `Cookie`
     * with the decrypted value. If the cookie cannot be found, or the cookie
     * fails to authenticate or decrypt, `null` is returned.
     *
     * @see {@link CookieJar.get}
     */
    get(name: string): Cookie | null;
    /**
     * Adds a {@link Cookie} to the parent jar.
     *
     * The cookie's value is encrypted with authenticated encryption assuring
     * confidentially, integrity and authenticity.
     *
     * @see {@link CookieJar.add}
     */
    add(cookie: Cookie): void;
    /**
     * Removes a {@link Cookie} from the parent jar.
     *
     * For correct removal, the passed in `cookie` must contain the same `path`
     * and `domain` as the cookie that was initially set.
     *
     * @see {@link CookieJar.remove}
     */
    remove(cookie: Cookie): void;
    private encrypt;
    private decrypt;
}
