declare const getCookieMap: (cookieString?: string) => Map<string, string>;
declare const getCookieValue: (name: string) => string | undefined;
declare const setCookieValue: (options: CookieInit) => undefined;
declare const deleteCookieValue: (options: {
    name: string;
    domain?: string;
    path?: string;
}) => undefined;
interface CookieListItem {
    name: string;
    value: string;
    path: string;
    domain: string | null;
    expires: number | null;
    secure: boolean;
    sameSite: "strict" | "lax" | "none";
}
interface CookieInit {
    name: string;
    value: string;
    path?: string;
    domain?: string;
    expires?: number;
    sameSite?: "strict" | "lax" | "none";
}
interface CookieChangeEvent extends Event {
    readonly changed: CookieListItem[];
    readonly deleted: CookieListItem[];
    type: "deleted" | "changed";
}
type SetCookie = {
    (options: CookieInit): Promise<undefined>;
    (name: string, value: string): Promise<undefined>;
};
interface CookieStore extends EventTarget {
    get: (name: string | {
        name: string;
        url: string;
    }) => Promise<CookieListItem | undefined>;
    getAll: (name: string | {
        name: string;
        url: string;
    }) => Promise<CookieListItem[]>;
    set: SetCookie;
    delete: (name: string | {
        name: string;
        domain?: string | null;
        path?: string;
    }) => Promise<undefined>;
    onchange: (event: CookieChangeEvent) => boolean | void | Promise<boolean | void>;
}
declare global {
    interface Window {
        cookieStore: CookieStore;
    }
}

export { type CookieChangeEvent, deleteCookieValue, getCookieMap, getCookieValue, setCookieValue };
