import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as EventsAPI from 'cloudflare/resources/waiting-rooms/events/events';
import * as DetailsAPI from 'cloudflare/resources/waiting-rooms/events/details';
export declare class Events extends APIResource {
    details: DetailsAPI.Details;
    /**
     * Only available for the Waiting Room Advanced subscription. Creates an event for
     * a waiting room. An event takes place during a specified period of time,
     * temporarily changing the behavior of a waiting room. While the event is active,
     * some of the properties in the event's configuration may either override or
     * inherit from the waiting room's configuration. Note that events cannot overlap
     * with each other, so only one event can be active at a time.
     */
    create(zoneIdentifier: string, waitingRoomId: unknown, body: EventCreateParams, options?: Core.RequestOptions): Core.APIPromise<WaitingroomEventResult>;
    /**
     * Updates a configured event for a waiting room.
     */
    update(zoneIdentifier: string, waitingRoomId: unknown, eventId: unknown, body: EventUpdateParams, options?: Core.RequestOptions): Core.APIPromise<WaitingroomEventResult>;
    /**
     * Lists events for a waiting room.
     */
    list(zoneIdentifier: string, waitingRoomId: unknown, options?: Core.RequestOptions): Core.APIPromise<EventListResponse | null>;
    /**
     * Deletes an event for a waiting room.
     */
    delete(zoneIdentifier: string, waitingRoomId: unknown, eventId: unknown, options?: Core.RequestOptions): Core.APIPromise<EventDeleteResponse>;
    /**
     * Patches a configured event for a waiting room.
     */
    edit(zoneIdentifier: string, waitingRoomId: unknown, eventId: unknown, body: EventEditParams, options?: Core.RequestOptions): Core.APIPromise<WaitingroomEventResult>;
    /**
     * Fetches a single configured event for a waiting room.
     */
    get(zoneIdentifier: string, waitingRoomId: unknown, eventId: unknown, options?: Core.RequestOptions): Core.APIPromise<WaitingroomEventResult>;
}
export interface WaitingroomEventResult {
    id?: unknown;
    created_on?: string;
    /**
     * If set, the event will override the waiting room's `custom_page_html` property
     * while it is active. If null, the event will inherit it.
     */
    custom_page_html?: string | null;
    /**
     * A note that you can use to add more details about the event.
     */
    description?: string;
    /**
     * If set, the event will override the waiting room's `disable_session_renewal`
     * property while it is active. If null, the event will inherit it.
     */
    disable_session_renewal?: boolean | null;
    /**
     * An ISO 8601 timestamp that marks the end of the event.
     */
    event_end_time?: string;
    /**
     * An ISO 8601 timestamp that marks the start of the event. At this time, queued
     * users will be processed with the event's configuration. The start time must be
     * at least one minute before `event_end_time`.
     */
    event_start_time?: string;
    modified_on?: string;
    /**
     * A unique name to identify the event. Only alphanumeric characters, hyphens and
     * underscores are allowed.
     */
    name?: string;
    /**
     * If set, the event will override the waiting room's `new_users_per_minute`
     * property while it is active. If null, the event will inherit it. This can only
     * be set if the event's `total_active_users` property is also set.
     */
    new_users_per_minute?: number | null;
    /**
     * An ISO 8601 timestamp that marks when to begin queueing all users before the
     * event starts. The prequeue must start at least five minutes before
     * `event_start_time`.
     */
    prequeue_start_time?: string | null;
    /**
     * If set, the event will override the waiting room's `queueing_method` property
     * while it is active. If null, the event will inherit it.
     */
    queueing_method?: string | null;
    /**
     * If set, the event will override the waiting room's `session_duration` property
     * while it is active. If null, the event will inherit it.
     */
    session_duration?: number | null;
    /**
     * If enabled, users in the prequeue will be shuffled randomly at the
     * `event_start_time`. Requires that `prequeue_start_time` is not null. This is
     * useful for situations when many users will join the event prequeue at the same
     * time and you want to shuffle them to ensure fairness. Naturally, it makes the
     * most sense to enable this feature when the `queueing_method` during the event
     * respects ordering such as **fifo**, or else the shuffling may be unnecessary.
     */
    shuffle_at_event_start?: boolean;
    /**
     * Suspends or allows an event. If set to `true`, the event is ignored and traffic
     * will be handled based on the waiting room configuration.
     */
    suspended?: boolean;
    /**
     * If set, the event will override the waiting room's `total_active_users` property
     * while it is active. If null, the event will inherit it. This can only be set if
     * the event's `new_users_per_minute` property is also set.
     */
    total_active_users?: number | null;
}
export type EventListResponse = Array<WaitingroomEventResult>;
export interface EventDeleteResponse {
    id?: unknown;
}
export interface EventCreateParams {
    /**
     * An ISO 8601 timestamp that marks the end of the event.
     */
    event_end_time: string;
    /**
     * An ISO 8601 timestamp that marks the start of the event. At this time, queued
     * users will be processed with the event's configuration. The start time must be
     * at least one minute before `event_end_time`.
     */
    event_start_time: string;
    /**
     * A unique name to identify the event. Only alphanumeric characters, hyphens and
     * underscores are allowed.
     */
    name: string;
    /**
     * If set, the event will override the waiting room's `custom_page_html` property
     * while it is active. If null, the event will inherit it.
     */
    custom_page_html?: string | null;
    /**
     * A note that you can use to add more details about the event.
     */
    description?: string;
    /**
     * If set, the event will override the waiting room's `disable_session_renewal`
     * property while it is active. If null, the event will inherit it.
     */
    disable_session_renewal?: boolean | null;
    /**
     * If set, the event will override the waiting room's `new_users_per_minute`
     * property while it is active. If null, the event will inherit it. This can only
     * be set if the event's `total_active_users` property is also set.
     */
    new_users_per_minute?: number | null;
    /**
     * An ISO 8601 timestamp that marks when to begin queueing all users before the
     * event starts. The prequeue must start at least five minutes before
     * `event_start_time`.
     */
    prequeue_start_time?: string | null;
    /**
     * If set, the event will override the waiting room's `queueing_method` property
     * while it is active. If null, the event will inherit it.
     */
    queueing_method?: string | null;
    /**
     * If set, the event will override the waiting room's `session_duration` property
     * while it is active. If null, the event will inherit it.
     */
    session_duration?: number | null;
    /**
     * If enabled, users in the prequeue will be shuffled randomly at the
     * `event_start_time`. Requires that `prequeue_start_time` is not null. This is
     * useful for situations when many users will join the event prequeue at the same
     * time and you want to shuffle them to ensure fairness. Naturally, it makes the
     * most sense to enable this feature when the `queueing_method` during the event
     * respects ordering such as **fifo**, or else the shuffling may be unnecessary.
     */
    shuffle_at_event_start?: boolean;
    /**
     * Suspends or allows an event. If set to `true`, the event is ignored and traffic
     * will be handled based on the waiting room configuration.
     */
    suspended?: boolean;
    /**
     * If set, the event will override the waiting room's `total_active_users` property
     * while it is active. If null, the event will inherit it. This can only be set if
     * the event's `new_users_per_minute` property is also set.
     */
    total_active_users?: number | null;
}
export interface EventUpdateParams {
    /**
     * An ISO 8601 timestamp that marks the end of the event.
     */
    event_end_time: string;
    /**
     * An ISO 8601 timestamp that marks the start of the event. At this time, queued
     * users will be processed with the event's configuration. The start time must be
     * at least one minute before `event_end_time`.
     */
    event_start_time: string;
    /**
     * A unique name to identify the event. Only alphanumeric characters, hyphens and
     * underscores are allowed.
     */
    name: string;
    /**
     * If set, the event will override the waiting room's `custom_page_html` property
     * while it is active. If null, the event will inherit it.
     */
    custom_page_html?: string | null;
    /**
     * A note that you can use to add more details about the event.
     */
    description?: string;
    /**
     * If set, the event will override the waiting room's `disable_session_renewal`
     * property while it is active. If null, the event will inherit it.
     */
    disable_session_renewal?: boolean | null;
    /**
     * If set, the event will override the waiting room's `new_users_per_minute`
     * property while it is active. If null, the event will inherit it. This can only
     * be set if the event's `total_active_users` property is also set.
     */
    new_users_per_minute?: number | null;
    /**
     * An ISO 8601 timestamp that marks when to begin queueing all users before the
     * event starts. The prequeue must start at least five minutes before
     * `event_start_time`.
     */
    prequeue_start_time?: string | null;
    /**
     * If set, the event will override the waiting room's `queueing_method` property
     * while it is active. If null, the event will inherit it.
     */
    queueing_method?: string | null;
    /**
     * If set, the event will override the waiting room's `session_duration` property
     * while it is active. If null, the event will inherit it.
     */
    session_duration?: number | null;
    /**
     * If enabled, users in the prequeue will be shuffled randomly at the
     * `event_start_time`. Requires that `prequeue_start_time` is not null. This is
     * useful for situations when many users will join the event prequeue at the same
     * time and you want to shuffle them to ensure fairness. Naturally, it makes the
     * most sense to enable this feature when the `queueing_method` during the event
     * respects ordering such as **fifo**, or else the shuffling may be unnecessary.
     */
    shuffle_at_event_start?: boolean;
    /**
     * Suspends or allows an event. If set to `true`, the event is ignored and traffic
     * will be handled based on the waiting room configuration.
     */
    suspended?: boolean;
    /**
     * If set, the event will override the waiting room's `total_active_users` property
     * while it is active. If null, the event will inherit it. This can only be set if
     * the event's `new_users_per_minute` property is also set.
     */
    total_active_users?: number | null;
}
export interface EventEditParams {
    /**
     * An ISO 8601 timestamp that marks the end of the event.
     */
    event_end_time: string;
    /**
     * An ISO 8601 timestamp that marks the start of the event. At this time, queued
     * users will be processed with the event's configuration. The start time must be
     * at least one minute before `event_end_time`.
     */
    event_start_time: string;
    /**
     * A unique name to identify the event. Only alphanumeric characters, hyphens and
     * underscores are allowed.
     */
    name: string;
    /**
     * If set, the event will override the waiting room's `custom_page_html` property
     * while it is active. If null, the event will inherit it.
     */
    custom_page_html?: string | null;
    /**
     * A note that you can use to add more details about the event.
     */
    description?: string;
    /**
     * If set, the event will override the waiting room's `disable_session_renewal`
     * property while it is active. If null, the event will inherit it.
     */
    disable_session_renewal?: boolean | null;
    /**
     * If set, the event will override the waiting room's `new_users_per_minute`
     * property while it is active. If null, the event will inherit it. This can only
     * be set if the event's `total_active_users` property is also set.
     */
    new_users_per_minute?: number | null;
    /**
     * An ISO 8601 timestamp that marks when to begin queueing all users before the
     * event starts. The prequeue must start at least five minutes before
     * `event_start_time`.
     */
    prequeue_start_time?: string | null;
    /**
     * If set, the event will override the waiting room's `queueing_method` property
     * while it is active. If null, the event will inherit it.
     */
    queueing_method?: string | null;
    /**
     * If set, the event will override the waiting room's `session_duration` property
     * while it is active. If null, the event will inherit it.
     */
    session_duration?: number | null;
    /**
     * If enabled, users in the prequeue will be shuffled randomly at the
     * `event_start_time`. Requires that `prequeue_start_time` is not null. This is
     * useful for situations when many users will join the event prequeue at the same
     * time and you want to shuffle them to ensure fairness. Naturally, it makes the
     * most sense to enable this feature when the `queueing_method` during the event
     * respects ordering such as **fifo**, or else the shuffling may be unnecessary.
     */
    shuffle_at_event_start?: boolean;
    /**
     * Suspends or allows an event. If set to `true`, the event is ignored and traffic
     * will be handled based on the waiting room configuration.
     */
    suspended?: boolean;
    /**
     * If set, the event will override the waiting room's `total_active_users` property
     * while it is active. If null, the event will inherit it. This can only be set if
     * the event's `new_users_per_minute` property is also set.
     */
    total_active_users?: number | null;
}
export declare namespace Events {
    export import WaitingroomEventResult = EventsAPI.WaitingroomEventResult;
    export import EventListResponse = EventsAPI.EventListResponse;
    export import EventDeleteResponse = EventsAPI.EventDeleteResponse;
    export import EventCreateParams = EventsAPI.EventCreateParams;
    export import EventUpdateParams = EventsAPI.EventUpdateParams;
    export import EventEditParams = EventsAPI.EventEditParams;
    export import Details = DetailsAPI.Details;
    export import WaitingroomEventDetailsResult = DetailsAPI.WaitingroomEventDetailsResult;
}
//# sourceMappingURL=events.d.ts.map