import { SameSiteValue } from '../../../../cookies/CookieParser.js';
import { HttpStep, IHttpStep } from '../../HttpStep.js';
export declare const SetCookieStepKind = "HttpAction#SetCookie";
export interface ISetCookieStepInit {
    /**
     * The name of the cookie
     */
    name: string;
    /**
     * The URL associated with the cookie. When not set it uses the request URL or the request URL of the last redirect.
     */
    url?: string;
    /**
     * The cookie expiration time. It can be a valid cookie date or a string representing a relative time to "now"
     * like `4d`, `600s`, etc.
     */
    expires?: string;
    /**
     * Whether the cookie is host only
     */
    hostOnly?: boolean;
    /**
     * Whether the cookie is HTTP only
     */
    httpOnly?: boolean;
    /**
     * Whether the cookie is HTTPS only
     */
    secure?: boolean;
    /**
     * Whether the cookie is a session cookie
     */
    session?: boolean;
    /**
     * The SameSite parameter of the cookie.
     * https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#creating_cookies
     */
    sameSite?: SameSiteValue;
}
/**
 * A step that allows to set a cookie with the value returned by a previous step.
 */
export interface ISetCookieStep extends IHttpStep, ISetCookieStepInit {
    kind: typeof SetCookieStepKind;
}
export declare class SetCookieStep extends HttpStep {
    kind: string;
    /**
     * The name of the cookie
     */
    name: string;
    /**
     * The URL associated with the cookie.
     * When not set it uses the request URL or the request URL of the last redirect.
     */
    url?: string;
    /**
     * The cookie expiration time. It can be a valid cookie date or a string representing a relative time to "now"
     * like `4d`, `600s`, etc.
     */
    expires?: string;
    /**
     * Whether the cookie is host only
     */
    hostOnly?: boolean;
    /**
     * Whether the cookie is HTTP only
     */
    httpOnly?: boolean;
    /**
     * Whether the cookie is HTTPS only
     */
    secure?: boolean;
    /**
     * Whether the cookie is a session cookie
     */
    session?: boolean;
    /**
     * The SameSite parameter of the cookie.
     * https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#creating_cookies
     */
    sameSite?: SameSiteValue;
    /**
     * Creates the step from values.
     * @param name The name of the variable to set
     * @param url Optional URL of the cookie to set.
     */
    constructor(name: string, url?: string);
    /**
     * Creates the step from serialized schema.
     * @param init The serialized step values.
     */
    constructor(init: ISetCookieStepInit);
    /**
     * Creates an empty step.
     */
    constructor();
    new(init: ISetCookieStep): void;
    checkValidity(): boolean;
    toJSON(): ISetCookieStep;
}
//# sourceMappingURL=SetCookieStep.d.ts.map