import { IHttpCookie } from '../../models/HttpCookie.js';
import { ContextChangeRecord } from '../BaseEvents.js';
export interface ICookieDomainListDetail {
    domain: string;
}
export interface ICookieUrlListDetail {
    url: string;
}
export interface ICookieItemsDetail {
    cookies: IHttpCookie[];
}
export interface ICookieDetail {
    cookie: IHttpCookie;
}
export interface ICookieDeleteUrlDetail {
    url: string;
    name?: string;
}
export declare class CookieEvents {
    /**
     * Lists all projects in the data store.
     * This does not return the whole project record. Instead it only returns the index object of the project.
     *
     * @param target The target on which to dispatch the event
     * @returns The list of project index objects.
     */
    static listAll(target?: EventTarget): Promise<IHttpCookie[] | undefined>;
    /**
     * @param target The target on which to dispatch the event
     * @param domain The cookie domain
     * @returns The list of project index objects.
     */
    static listDomain(domain: string, target?: EventTarget): Promise<IHttpCookie[] | undefined>;
    /**
     * @param target The target on which to dispatch the event
     * @param url The cookie URL
     * @returns The list of project index objects.
     */
    static listUrl(url: string, target?: EventTarget): Promise<IHttpCookie[] | undefined>;
    /**
     * Deletes cookies from the store.
     *
     * @param target The target on which to dispatch the event
     * @param cookies The list of cookies to remove
     */
    static delete(cookies: IHttpCookie[], target?: EventTarget): Promise<void>;
    /**
     * Deletes cookies from the store.
     *
     * @param target The target on which to dispatch the event
     * @param url The url associated with the cookie. Depending on the session mechanism
     *            the URL or the domain and the path is used.
     * @param name The name of the cookie to remove. When not set all cookies are removed for the given URL.
     */
    static deleteUrl(url: string, name?: string, target?: EventTarget): Promise<void>;
    /**
     * Updates a cookie in the store.
     *
     * @param target The target on which to dispatch the event
     * @param cookie A cookie to update
     * @returns The change record of the updated cookie.
     */
    static update(cookie: IHttpCookie, target?: EventTarget): Promise<ContextChangeRecord<IHttpCookie> | undefined>;
    /**
     * Updates a cookie in the store in a bulk operation.
     *
     * @param target The target on which to dispatch the event
     * @param cookies A list of cookies to update
     * @returns The change record of the updated cookie.
     */
    static updateBulk(cookies: IHttpCookie[], target?: EventTarget): Promise<void>;
    /**
     * Events related to a state of a cookie store.
     */
    static get State(): typeof StateEvents;
}
declare class StateEvents {
    /**
     * Event dispatched when a cookie was deleted from the context store
     * @param target The target on which to dispatch the event
     * @param cookie The schema of the removed cookie
     */
    static delete(cookie: IHttpCookie, target?: EventTarget): void;
    /**
     * Event dispatched when a cookie was deleted from the context store
     * @param target The target on which to dispatch the event
     * @param record The change record.
     */
    static update(record: ContextChangeRecord<IHttpCookie>, target?: EventTarget): void;
}
export {};
//# sourceMappingURL=CookieEvents.d.ts.map