import { APIResource } from "../../core/resource.mjs";
import { APIPromise } from "../../core/api-promise.mjs";
import { PagePromise, SinglePage } from "../../core/pagination.mjs";
import { RequestOptions } from "../../internal/request-options.mjs";
export declare class BaseSFU extends APIResource {
    static readonly _key: readonly ['calls', 'sfu'];
    /**
     * Creates a Realtime SFU app. An app is an isolated namespace in which sessions
     * can access the app's tracks.
     *
     * @example
     * ```ts
     * const sfu = await client.calls.sfu.create({
     *   account_id: '023e105f4ecef8ad9ca31a8372d0c353',
     * });
     * ```
     */
    create(params: SFUCreateParams, options?: RequestOptions): APIPromise<SFUCreateResponse>;
    /**
     * Updates details for a single Realtime SFU app.
     *
     * @example
     * ```ts
     * const sfu = await client.calls.sfu.update(
     *   '2a95132c15732412d22c1476fa83f27a',
     *   { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
     * );
     * ```
     */
    update(appID: string, params: SFUUpdateParams, options?: RequestOptions): APIPromise<SFUUpdateResponse>;
    /**
     * Lists all apps in the Cloudflare account
     *
     * @example
     * ```ts
     * // Automatically fetches more pages as needed.
     * for await (const sfuListResponse of client.calls.sfu.list({
     *   account_id: '023e105f4ecef8ad9ca31a8372d0c353',
     * })) {
     *   // ...
     * }
     * ```
     */
    list(params: SFUListParams, options?: RequestOptions): PagePromise<SFUListResponsesSinglePage, SFUListResponse>;
    /**
     * Deletes a Realtime SFU app.
     *
     * @example
     * ```ts
     * const sfu = await client.calls.sfu.delete(
     *   '2a95132c15732412d22c1476fa83f27a',
     *   { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
     * );
     * ```
     */
    delete(appID: string, params: SFUDeleteParams, options?: RequestOptions): APIPromise<SFUDeleteResponse>;
    /**
     * Fetches details for a single Realtime SFU app.
     *
     * @example
     * ```ts
     * const sfu = await client.calls.sfu.get(
     *   '2a95132c15732412d22c1476fa83f27a',
     *   { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
     * );
     * ```
     */
    get(appID: string, params: SFUGetParams, options?: RequestOptions): APIPromise<SFUGetResponse>;
}
export declare class SFU extends BaseSFU {
}
export type SFUListResponsesSinglePage = SinglePage<SFUListResponse>;
export interface SFUCreateResponse {
    /**
     * The date and time the item was created.
     */
    created: string;
    /**
     * The date and time the item was last modified.
     */
    modified: string;
    /**
     * A short description of a Realtime SFU app, not shown to end users.
     */
    name: string;
    /**
     * Bearer token
     */
    secret: string;
    /**
     * A Cloudflare-generated unique identifier for a item.
     */
    uid: string;
}
export interface SFUUpdateResponse {
    /**
     * The date and time the item was created.
     */
    created: string;
    /**
     * The date and time the item was last modified.
     */
    modified: string;
    /**
     * A short description of a Realtime SFU app, not shown to end users.
     */
    name: string;
    /**
     * A Cloudflare-generated unique identifier for a item.
     */
    uid: string;
}
export interface SFUListResponse {
    /**
     * The date and time the item was created.
     */
    created: string;
    /**
     * The date and time the item was last modified.
     */
    modified: string;
    /**
     * A short description of a Realtime SFU app, not shown to end users.
     */
    name: string;
    /**
     * A Cloudflare-generated unique identifier for a item.
     */
    uid: string;
}
export interface SFUDeleteResponse {
    /**
     * The date and time the item was created.
     */
    created: string;
    /**
     * The date and time the item was last modified.
     */
    modified: string;
    /**
     * A short description of a Realtime SFU app, not shown to end users.
     */
    name: string;
    /**
     * A Cloudflare-generated unique identifier for a item.
     */
    uid: string;
}
export interface SFUGetResponse {
    /**
     * The date and time the item was created.
     */
    created: string;
    /**
     * The date and time the item was last modified.
     */
    modified: string;
    /**
     * A short description of a Realtime SFU app, not shown to end users.
     */
    name: string;
    /**
     * A Cloudflare-generated unique identifier for a item.
     */
    uid: string;
}
export interface SFUCreateParams {
    /**
     * Path param: The account identifier tag.
     */
    account_id: string;
    /**
     * Body param: A short description of a Realtime SFU app, not shown to end users.
     */
    name?: string;
}
export interface SFUUpdateParams {
    /**
     * Path param: The account identifier tag.
     */
    account_id: string;
    /**
     * Body param: A short description of a Realtime SFU app, not shown to end users.
     */
    name?: string;
}
export interface SFUListParams {
    /**
     * The account identifier tag.
     */
    account_id: string;
}
export interface SFUDeleteParams {
    /**
     * The account identifier tag.
     */
    account_id: string;
}
export interface SFUGetParams {
    /**
     * The account identifier tag.
     */
    account_id: string;
}
export declare namespace SFU {
    export { type SFUCreateResponse as SFUCreateResponse, type SFUUpdateResponse as SFUUpdateResponse, type SFUListResponse as SFUListResponse, type SFUDeleteResponse as SFUDeleteResponse, type SFUGetResponse as SFUGetResponse, type SFUListResponsesSinglePage as SFUListResponsesSinglePage, type SFUCreateParams as SFUCreateParams, type SFUUpdateParams as SFUUpdateParams, type SFUListParams as SFUListParams, type SFUDeleteParams as SFUDeleteParams, type SFUGetParams as SFUGetParams, };
}
//# sourceMappingURL=sfu.d.mts.map