{"version":3,"sources":["../../src/services/apps.ts"],"names":[],"mappings":"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","file":"apps.mjs","sourcesContent":["import { AppwriteException, Client, type Payload } from '../client';\nimport type { Models } from '../models';\n\nexport class Apps {\n    client: Client;\n\n    constructor(client: Client) {\n        this.client = client;\n    }\n\n    /**\n     * List applications.\n     *\n     * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.\n     * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppsList>}\n     */\n    list(params?: {\n        queries?: string[];\n        total?: boolean;\n    }): Promise<Models.AppsList>;\n    /**\n     * List applications.\n     *\n     * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.\n     * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppsList>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    list(queries?: string[], total?: boolean): Promise<Models.AppsList>;\n    list(\n        paramsOrFirst?: { queries?: string[]; total?: boolean } | string[],\n        ...rest: [boolean?]\n    ): Promise<Models.AppsList> {\n        let params: { queries?: string[]; total?: boolean };\n\n        if (\n            !paramsOrFirst ||\n            (paramsOrFirst &&\n                typeof paramsOrFirst === 'object' &&\n                !Array.isArray(paramsOrFirst))\n        ) {\n            params = (paramsOrFirst || {}) as {\n                queries?: string[];\n                total?: boolean;\n            };\n        } else {\n            params = {\n                queries: paramsOrFirst as string[],\n                total: rest[0] as boolean,\n            };\n        }\n\n        const queries = params.queries;\n        const total = params.total;\n        const apiPath = '/apps';\n        const apiPayload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            apiPayload['queries'] = queries;\n        }\n        if (typeof total !== 'undefined') {\n            apiPayload['total'] = total;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Create a new application.\n     *\n     * @param {string} params.appId - Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n     * @param {string} params.name - Application name.\n     * @param {string[]} params.redirectUris - Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:/oauth), and must not contain a fragment.\n     * @param {string} params.description - Application description shown to users during OAuth2 consent.\n     * @param {string} params.clientUri - Application homepage URL shown to users during OAuth2 consent.\n     * @param {string} params.logoUri - Application logo URL shown to users during OAuth2 consent.\n     * @param {string} params.privacyPolicyUrl - Application privacy policy URL shown to users during OAuth2 consent.\n     * @param {string} params.termsUrl - Application terms of service URL shown to users during OAuth2 consent.\n     * @param {string[]} params.contacts - Application support or security contact emails. Maximum of 100 contacts are allowed.\n     * @param {string} params.tagline - Application tagline shown to users during OAuth2 consent.\n     * @param {string[]} params.tags - Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.\n     * @param {string[]} params.images - Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.\n     * @param {string} params.supportUrl - Application support URL shown to users during OAuth2 consent.\n     * @param {string} params.dataDeletionUrl - Application data deletion URL shown to users during OAuth2 consent.\n     * @param {string[]} params.postLogoutRedirectUris - Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.\n     * @param {boolean} params.enabled - Is application enabled?\n     * @param {string} params.type - OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` — PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.\n     * @param {boolean} params.deviceFlow - Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.\n     * @param {string} params.teamId - Team unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.App>}\n     */\n    create(params: {\n        appId: string;\n        name: string;\n        redirectUris: string[];\n        description?: string;\n        clientUri?: string;\n        logoUri?: string;\n        privacyPolicyUrl?: string;\n        termsUrl?: string;\n        contacts?: string[];\n        tagline?: string;\n        tags?: string[];\n        images?: string[];\n        supportUrl?: string;\n        dataDeletionUrl?: string;\n        postLogoutRedirectUris?: string[];\n        enabled?: boolean;\n        type?: string;\n        deviceFlow?: boolean;\n        teamId?: string;\n    }): Promise<Models.App>;\n    /**\n     * Create a new application.\n     *\n     * @param {string} appId - Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n     * @param {string} name - Application name.\n     * @param {string[]} redirectUris - Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:/oauth), and must not contain a fragment.\n     * @param {string} description - Application description shown to users during OAuth2 consent.\n     * @param {string} clientUri - Application homepage URL shown to users during OAuth2 consent.\n     * @param {string} logoUri - Application logo URL shown to users during OAuth2 consent.\n     * @param {string} privacyPolicyUrl - Application privacy policy URL shown to users during OAuth2 consent.\n     * @param {string} termsUrl - Application terms of service URL shown to users during OAuth2 consent.\n     * @param {string[]} contacts - Application support or security contact emails. Maximum of 100 contacts are allowed.\n     * @param {string} tagline - Application tagline shown to users during OAuth2 consent.\n     * @param {string[]} tags - Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.\n     * @param {string[]} images - Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.\n     * @param {string} supportUrl - Application support URL shown to users during OAuth2 consent.\n     * @param {string} dataDeletionUrl - Application data deletion URL shown to users during OAuth2 consent.\n     * @param {string[]} postLogoutRedirectUris - Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.\n     * @param {boolean} enabled - Is application enabled?\n     * @param {string} type - OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` — PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.\n     * @param {boolean} deviceFlow - Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.\n     * @param {string} teamId - Team unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.App>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    create(\n        appId: string,\n        name: string,\n        redirectUris: string[],\n        description?: string,\n        clientUri?: string,\n        logoUri?: string,\n        privacyPolicyUrl?: string,\n        termsUrl?: string,\n        contacts?: string[],\n        tagline?: string,\n        tags?: string[],\n        images?: string[],\n        supportUrl?: string,\n        dataDeletionUrl?: string,\n        postLogoutRedirectUris?: string[],\n        enabled?: boolean,\n        type?: string,\n        deviceFlow?: boolean,\n        teamId?: string,\n    ): Promise<Models.App>;\n    create(\n        paramsOrFirst:\n            | {\n                  appId: string;\n                  name: string;\n                  redirectUris: string[];\n                  description?: string;\n                  clientUri?: string;\n                  logoUri?: string;\n                  privacyPolicyUrl?: string;\n                  termsUrl?: string;\n                  contacts?: string[];\n                  tagline?: string;\n                  tags?: string[];\n                  images?: string[];\n                  supportUrl?: string;\n                  dataDeletionUrl?: string;\n                  postLogoutRedirectUris?: string[];\n                  enabled?: boolean;\n                  type?: string;\n                  deviceFlow?: boolean;\n                  teamId?: string;\n              }\n            | string,\n        ...rest: [\n            string?,\n            string[]?,\n            string?,\n            string?,\n            string?,\n            string?,\n            string?,\n            string[]?,\n            string?,\n            string[]?,\n            string[]?,\n            string?,\n            string?,\n            string[]?,\n            boolean?,\n            string?,\n            boolean?,\n            string?,\n        ]\n    ): Promise<Models.App> {\n        let params: {\n            appId: string;\n            name: string;\n            redirectUris: string[];\n            description?: string;\n            clientUri?: string;\n            logoUri?: string;\n            privacyPolicyUrl?: string;\n            termsUrl?: string;\n            contacts?: string[];\n            tagline?: string;\n            tags?: string[];\n            images?: string[];\n            supportUrl?: string;\n            dataDeletionUrl?: string;\n            postLogoutRedirectUris?: string[];\n            enabled?: boolean;\n            type?: string;\n            deviceFlow?: boolean;\n            teamId?: string;\n        };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                name: string;\n                redirectUris: string[];\n                description?: string;\n                clientUri?: string;\n                logoUri?: string;\n                privacyPolicyUrl?: string;\n                termsUrl?: string;\n                contacts?: string[];\n                tagline?: string;\n                tags?: string[];\n                images?: string[];\n                supportUrl?: string;\n                dataDeletionUrl?: string;\n                postLogoutRedirectUris?: string[];\n                enabled?: boolean;\n                type?: string;\n                deviceFlow?: boolean;\n                teamId?: string;\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                name: rest[0] as string,\n                redirectUris: rest[1] as string[],\n                description: rest[2] as string,\n                clientUri: rest[3] as string,\n                logoUri: rest[4] as string,\n                privacyPolicyUrl: rest[5] as string,\n                termsUrl: rest[6] as string,\n                contacts: rest[7] as string[],\n                tagline: rest[8] as string,\n                tags: rest[9] as string[],\n                images: rest[10] as string[],\n                supportUrl: rest[11] as string,\n                dataDeletionUrl: rest[12] as string,\n                postLogoutRedirectUris: rest[13] as string[],\n                enabled: rest[14] as boolean,\n                type: rest[15] as string,\n                deviceFlow: rest[16] as boolean,\n                teamId: rest[17] as string,\n            };\n        }\n\n        const appId = params.appId;\n        const name = params.name;\n        const redirectUris = params.redirectUris;\n        const description = params.description;\n        const clientUri = params.clientUri;\n        const logoUri = params.logoUri;\n        const privacyPolicyUrl = params.privacyPolicyUrl;\n        const termsUrl = params.termsUrl;\n        const contacts = params.contacts;\n        const tagline = params.tagline;\n        const tags = params.tags;\n        const images = params.images;\n        const supportUrl = params.supportUrl;\n        const dataDeletionUrl = params.dataDeletionUrl;\n        const postLogoutRedirectUris = params.postLogoutRedirectUris;\n        const enabled = params.enabled;\n        const type = params.type;\n        const deviceFlow = params.deviceFlow;\n        const teamId = params.teamId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof redirectUris === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"redirectUris\"',\n            );\n        }\n        const apiPath = '/apps';\n        const apiPayload: Payload = {};\n        if (typeof appId !== 'undefined') {\n            apiPayload['appId'] = appId;\n        }\n        if (typeof name !== 'undefined') {\n            apiPayload['name'] = name;\n        }\n        if (typeof description !== 'undefined') {\n            apiPayload['description'] = description;\n        }\n        if (typeof clientUri !== 'undefined') {\n            apiPayload['clientUri'] = clientUri;\n        }\n        if (typeof logoUri !== 'undefined') {\n            apiPayload['logoUri'] = logoUri;\n        }\n        if (typeof privacyPolicyUrl !== 'undefined') {\n            apiPayload['privacyPolicyUrl'] = privacyPolicyUrl;\n        }\n        if (typeof termsUrl !== 'undefined') {\n            apiPayload['termsUrl'] = termsUrl;\n        }\n        if (typeof contacts !== 'undefined') {\n            apiPayload['contacts'] = contacts;\n        }\n        if (typeof tagline !== 'undefined') {\n            apiPayload['tagline'] = tagline;\n        }\n        if (typeof tags !== 'undefined') {\n            apiPayload['tags'] = tags;\n        }\n        if (typeof images !== 'undefined') {\n            apiPayload['images'] = images;\n        }\n        if (typeof supportUrl !== 'undefined') {\n            apiPayload['supportUrl'] = supportUrl;\n        }\n        if (typeof dataDeletionUrl !== 'undefined') {\n            apiPayload['dataDeletionUrl'] = dataDeletionUrl;\n        }\n        if (typeof redirectUris !== 'undefined') {\n            apiPayload['redirectUris'] = redirectUris;\n        }\n        if (typeof postLogoutRedirectUris !== 'undefined') {\n            apiPayload['postLogoutRedirectUris'] = postLogoutRedirectUris;\n        }\n        if (typeof enabled !== 'undefined') {\n            apiPayload['enabled'] = enabled;\n        }\n        if (typeof type !== 'undefined') {\n            apiPayload['type'] = type;\n        }\n        if (typeof deviceFlow !== 'undefined') {\n            apiPayload['deviceFlow'] = deviceFlow;\n        }\n        if (typeof teamId !== 'undefined') {\n            apiPayload['teamId'] = teamId;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('post', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * List scopes an application can request when installed on a team.\n     *\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppScopeList>}\n     */\n    listInstallationScopes(): Promise<Models.AppScopeList> {\n        const apiPath = '/apps/scopes/installations';\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * List scopes an application can request during the OAuth2 flow.\n     *\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppScopeList>}\n     */\n    listOAuth2Scopes(): Promise<Models.AppScopeList> {\n        const apiPath = '/apps/scopes/oauth2';\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get an application by its unique ID.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.App>}\n     */\n    get(params: { appId: string }): Promise<Models.App>;\n    /**\n     * Get an application by its unique ID.\n     *\n     * @param {string} appId - Application unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.App>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    get(appId: string): Promise<Models.App>;\n    get(paramsOrFirst: { appId: string } | string): Promise<Models.App> {\n        let params: { appId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { appId: string };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n            };\n        }\n\n        const appId = params.appId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        const apiPath = '/apps/{appId}'.replace(\n            '{appId}',\n            encodeURIComponent(String(appId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Update an application by its unique ID.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string} params.name - Application name.\n     * @param {string} params.description - Application description shown to users during OAuth2 consent.\n     * @param {string} params.clientUri - Application homepage URL shown to users during OAuth2 consent.\n     * @param {string} params.logoUri - Application logo URL shown to users during OAuth2 consent.\n     * @param {string} params.privacyPolicyUrl - Application privacy policy URL shown to users during OAuth2 consent.\n     * @param {string} params.termsUrl - Application terms of service URL shown to users during OAuth2 consent.\n     * @param {string[]} params.contacts - Application support or security contact emails. Maximum of 100 contacts are allowed.\n     * @param {string} params.tagline - Application tagline shown to users during OAuth2 consent.\n     * @param {string[]} params.tags - Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.\n     * @param {string[]} params.images - Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.\n     * @param {string} params.supportUrl - Application support URL shown to users during OAuth2 consent.\n     * @param {string} params.dataDeletionUrl - Application data deletion URL shown to users during OAuth2 consent.\n     * @param {boolean} params.enabled - Is application enabled?\n     * @param {string[]} params.redirectUris - Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:/oauth), and must not contain a fragment.\n     * @param {string[]} params.postLogoutRedirectUris - Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.\n     * @param {string} params.type - OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` — PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.\n     * @param {boolean} params.deviceFlow - Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.\n     * @param {string[]} params.installationScopes - Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.\n     * @param {string} params.installationRedirectUrl - URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.App>}\n     */\n    update(params: {\n        appId: string;\n        name: string;\n        description?: string;\n        clientUri?: string;\n        logoUri?: string;\n        privacyPolicyUrl?: string;\n        termsUrl?: string;\n        contacts?: string[];\n        tagline?: string;\n        tags?: string[];\n        images?: string[];\n        supportUrl?: string;\n        dataDeletionUrl?: string;\n        enabled?: boolean;\n        redirectUris?: string[];\n        postLogoutRedirectUris?: string[];\n        type?: string;\n        deviceFlow?: boolean;\n        installationScopes?: string[];\n        installationRedirectUrl?: string;\n    }): Promise<Models.App>;\n    /**\n     * Update an application by its unique ID.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string} name - Application name.\n     * @param {string} description - Application description shown to users during OAuth2 consent.\n     * @param {string} clientUri - Application homepage URL shown to users during OAuth2 consent.\n     * @param {string} logoUri - Application logo URL shown to users during OAuth2 consent.\n     * @param {string} privacyPolicyUrl - Application privacy policy URL shown to users during OAuth2 consent.\n     * @param {string} termsUrl - Application terms of service URL shown to users during OAuth2 consent.\n     * @param {string[]} contacts - Application support or security contact emails. Maximum of 100 contacts are allowed.\n     * @param {string} tagline - Application tagline shown to users during OAuth2 consent.\n     * @param {string[]} tags - Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.\n     * @param {string[]} images - Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.\n     * @param {string} supportUrl - Application support URL shown to users during OAuth2 consent.\n     * @param {string} dataDeletionUrl - Application data deletion URL shown to users during OAuth2 consent.\n     * @param {boolean} enabled - Is application enabled?\n     * @param {string[]} redirectUris - Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:/oauth), and must not contain a fragment.\n     * @param {string[]} postLogoutRedirectUris - Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.\n     * @param {string} type - OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` — PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.\n     * @param {boolean} deviceFlow - Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.\n     * @param {string[]} installationScopes - Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.\n     * @param {string} installationRedirectUrl - URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.App>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    update(\n        appId: string,\n        name: string,\n        description?: string,\n        clientUri?: string,\n        logoUri?: string,\n        privacyPolicyUrl?: string,\n        termsUrl?: string,\n        contacts?: string[],\n        tagline?: string,\n        tags?: string[],\n        images?: string[],\n        supportUrl?: string,\n        dataDeletionUrl?: string,\n        enabled?: boolean,\n        redirectUris?: string[],\n        postLogoutRedirectUris?: string[],\n        type?: string,\n        deviceFlow?: boolean,\n        installationScopes?: string[],\n        installationRedirectUrl?: string,\n    ): Promise<Models.App>;\n    update(\n        paramsOrFirst:\n            | {\n                  appId: string;\n                  name: string;\n                  description?: string;\n                  clientUri?: string;\n                  logoUri?: string;\n                  privacyPolicyUrl?: string;\n                  termsUrl?: string;\n                  contacts?: string[];\n                  tagline?: string;\n                  tags?: string[];\n                  images?: string[];\n                  supportUrl?: string;\n                  dataDeletionUrl?: string;\n                  enabled?: boolean;\n                  redirectUris?: string[];\n                  postLogoutRedirectUris?: string[];\n                  type?: string;\n                  deviceFlow?: boolean;\n                  installationScopes?: string[];\n                  installationRedirectUrl?: string;\n              }\n            | string,\n        ...rest: [\n            string?,\n            string?,\n            string?,\n            string?,\n            string?,\n            string?,\n            string[]?,\n            string?,\n            string[]?,\n            string[]?,\n            string?,\n            string?,\n            boolean?,\n            string[]?,\n            string[]?,\n            string?,\n            boolean?,\n            string[]?,\n            string?,\n        ]\n    ): Promise<Models.App> {\n        let params: {\n            appId: string;\n            name: string;\n            description?: string;\n            clientUri?: string;\n            logoUri?: string;\n            privacyPolicyUrl?: string;\n            termsUrl?: string;\n            contacts?: string[];\n            tagline?: string;\n            tags?: string[];\n            images?: string[];\n            supportUrl?: string;\n            dataDeletionUrl?: string;\n            enabled?: boolean;\n            redirectUris?: string[];\n            postLogoutRedirectUris?: string[];\n            type?: string;\n            deviceFlow?: boolean;\n            installationScopes?: string[];\n            installationRedirectUrl?: string;\n        };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                name: string;\n                description?: string;\n                clientUri?: string;\n                logoUri?: string;\n                privacyPolicyUrl?: string;\n                termsUrl?: string;\n                contacts?: string[];\n                tagline?: string;\n                tags?: string[];\n                images?: string[];\n                supportUrl?: string;\n                dataDeletionUrl?: string;\n                enabled?: boolean;\n                redirectUris?: string[];\n                postLogoutRedirectUris?: string[];\n                type?: string;\n                deviceFlow?: boolean;\n                installationScopes?: string[];\n                installationRedirectUrl?: string;\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                name: rest[0] as string,\n                description: rest[1] as string,\n                clientUri: rest[2] as string,\n                logoUri: rest[3] as string,\n                privacyPolicyUrl: rest[4] as string,\n                termsUrl: rest[5] as string,\n                contacts: rest[6] as string[],\n                tagline: rest[7] as string,\n                tags: rest[8] as string[],\n                images: rest[9] as string[],\n                supportUrl: rest[10] as string,\n                dataDeletionUrl: rest[11] as string,\n                enabled: rest[12] as boolean,\n                redirectUris: rest[13] as string[],\n                postLogoutRedirectUris: rest[14] as string[],\n                type: rest[15] as string,\n                deviceFlow: rest[16] as boolean,\n                installationScopes: rest[17] as string[],\n                installationRedirectUrl: rest[18] as string,\n            };\n        }\n\n        const appId = params.appId;\n        const name = params.name;\n        const description = params.description;\n        const clientUri = params.clientUri;\n        const logoUri = params.logoUri;\n        const privacyPolicyUrl = params.privacyPolicyUrl;\n        const termsUrl = params.termsUrl;\n        const contacts = params.contacts;\n        const tagline = params.tagline;\n        const tags = params.tags;\n        const images = params.images;\n        const supportUrl = params.supportUrl;\n        const dataDeletionUrl = params.dataDeletionUrl;\n        const enabled = params.enabled;\n        const redirectUris = params.redirectUris;\n        const postLogoutRedirectUris = params.postLogoutRedirectUris;\n        const type = params.type;\n        const deviceFlow = params.deviceFlow;\n        const installationScopes = params.installationScopes;\n        const installationRedirectUrl = params.installationRedirectUrl;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        const apiPath = '/apps/{appId}'.replace(\n            '{appId}',\n            encodeURIComponent(String(appId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof name !== 'undefined') {\n            apiPayload['name'] = name;\n        }\n        if (typeof description !== 'undefined') {\n            apiPayload['description'] = description;\n        }\n        if (typeof clientUri !== 'undefined') {\n            apiPayload['clientUri'] = clientUri;\n        }\n        if (typeof logoUri !== 'undefined') {\n            apiPayload['logoUri'] = logoUri;\n        }\n        if (typeof privacyPolicyUrl !== 'undefined') {\n            apiPayload['privacyPolicyUrl'] = privacyPolicyUrl;\n        }\n        if (typeof termsUrl !== 'undefined') {\n            apiPayload['termsUrl'] = termsUrl;\n        }\n        if (typeof contacts !== 'undefined') {\n            apiPayload['contacts'] = contacts;\n        }\n        if (typeof tagline !== 'undefined') {\n            apiPayload['tagline'] = tagline;\n        }\n        if (typeof tags !== 'undefined') {\n            apiPayload['tags'] = tags;\n        }\n        if (typeof images !== 'undefined') {\n            apiPayload['images'] = images;\n        }\n        if (typeof supportUrl !== 'undefined') {\n            apiPayload['supportUrl'] = supportUrl;\n        }\n        if (typeof dataDeletionUrl !== 'undefined') {\n            apiPayload['dataDeletionUrl'] = dataDeletionUrl;\n        }\n        if (typeof enabled !== 'undefined') {\n            apiPayload['enabled'] = enabled;\n        }\n        if (typeof redirectUris !== 'undefined') {\n            apiPayload['redirectUris'] = redirectUris;\n        }\n        if (typeof postLogoutRedirectUris !== 'undefined') {\n            apiPayload['postLogoutRedirectUris'] = postLogoutRedirectUris;\n        }\n        if (typeof type !== 'undefined') {\n            apiPayload['type'] = type;\n        }\n        if (typeof deviceFlow !== 'undefined') {\n            apiPayload['deviceFlow'] = deviceFlow;\n        }\n        if (typeof installationScopes !== 'undefined') {\n            apiPayload['installationScopes'] = installationScopes;\n        }\n        if (typeof installationRedirectUrl !== 'undefined') {\n            apiPayload['installationRedirectUrl'] = installationRedirectUrl;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('put', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Delete an application by its unique ID.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    delete(params: { appId: string }): Promise<{}>;\n    /**\n     * Delete an application by its unique ID.\n     *\n     * @param {string} appId - Application unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    delete(appId: string): Promise<{}>;\n    delete(paramsOrFirst: { appId: string } | string): Promise<{}> {\n        let params: { appId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { appId: string };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n            };\n        }\n\n        const appId = params.appId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        const apiPath = '/apps/{appId}'.replace(\n            '{appId}',\n            encodeURIComponent(String(appId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('delete', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.\n     * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppInstallationList>}\n     */\n    listInstallations(params: {\n        appId: string;\n        queries?: string[];\n        total?: boolean;\n    }): Promise<Models.AppInstallationList>;\n    /**\n     * List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.\n     * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppInstallationList>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    listInstallations(\n        appId: string,\n        queries?: string[],\n        total?: boolean,\n    ): Promise<Models.AppInstallationList>;\n    listInstallations(\n        paramsOrFirst:\n            { appId: string; queries?: string[]; total?: boolean } | string,\n        ...rest: [string[]?, boolean?]\n    ): Promise<Models.AppInstallationList> {\n        let params: { appId: string; queries?: string[]; total?: boolean };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                queries?: string[];\n                total?: boolean;\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                queries: rest[0] as string[],\n                total: rest[1] as boolean,\n            };\n        }\n\n        const appId = params.appId;\n        const queries = params.queries;\n        const total = params.total;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        const apiPath = '/apps/{appId}/installations'.replace(\n            '{appId}',\n            encodeURIComponent(String(appId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            apiPayload['queries'] = queries;\n        }\n        if (typeof total !== 'undefined') {\n            apiPayload['total'] = total;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string} params.installationId - Installation unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppInstallation>}\n     */\n    getInstallation(params: {\n        appId: string;\n        installationId: string;\n    }): Promise<Models.AppInstallation>;\n    /**\n     * Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string} installationId - Installation unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppInstallation>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    getInstallation(\n        appId: string,\n        installationId: string,\n    ): Promise<Models.AppInstallation>;\n    getInstallation(\n        paramsOrFirst: { appId: string; installationId: string } | string,\n        ...rest: [string?]\n    ): Promise<Models.AppInstallation> {\n        let params: { appId: string; installationId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                installationId: string;\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                installationId: rest[0] as string,\n            };\n        }\n\n        const appId = params.appId;\n        const installationId = params.installationId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        if (typeof installationId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"installationId\"',\n            );\n        }\n        const apiPath = '/apps/{appId}/installations/{installationId}'\n            .replace('{appId}', encodeURIComponent(String(appId)))\n            .replace(\n                '{installationId}',\n                encodeURIComponent(String(installationId)),\n            );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string} params.installationId - Installation unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    deleteInstallation(params: {\n        appId: string;\n        installationId: string;\n    }): Promise<{}>;\n    /**\n     * Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string} installationId - Installation unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    deleteInstallation(appId: string, installationId: string): Promise<{}>;\n    deleteInstallation(\n        paramsOrFirst: { appId: string; installationId: string } | string,\n        ...rest: [string?]\n    ): Promise<{}> {\n        let params: { appId: string; installationId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                installationId: string;\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                installationId: rest[0] as string,\n            };\n        }\n\n        const appId = params.appId;\n        const installationId = params.installationId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        if (typeof installationId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"installationId\"',\n            );\n        }\n        const apiPath = '/apps/{appId}/installations/{installationId}'\n            .replace('{appId}', encodeURIComponent(String(appId)))\n            .replace(\n                '{installationId}',\n                encodeURIComponent(String(installationId)),\n            );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('delete', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string} params.installationId - Installation unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Oauth2Token>}\n     */\n    createInstallationToken(params: {\n        appId: string;\n        installationId: string;\n    }): Promise<Models.Oauth2Token>;\n    /**\n     * Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string} installationId - Installation unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Oauth2Token>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createInstallationToken(\n        appId: string,\n        installationId: string,\n    ): Promise<Models.Oauth2Token>;\n    createInstallationToken(\n        paramsOrFirst: { appId: string; installationId: string } | string,\n        ...rest: [string?]\n    ): Promise<Models.Oauth2Token> {\n        let params: { appId: string; installationId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                installationId: string;\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                installationId: rest[0] as string,\n            };\n        }\n\n        const appId = params.appId;\n        const installationId = params.installationId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        if (typeof installationId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"installationId\"',\n            );\n        }\n        const apiPath = '/apps/{appId}/installations/{installationId}/tokens'\n            .replace('{appId}', encodeURIComponent(String(appId)))\n            .replace(\n                '{installationId}',\n                encodeURIComponent(String(installationId)),\n            );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('post', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * List app keys for an application.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.\n     * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppKeyList>}\n     */\n    listKeys(params: {\n        appId: string;\n        queries?: string[];\n        total?: boolean;\n    }): Promise<Models.AppKeyList>;\n    /**\n     * List app keys for an application.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.\n     * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppKeyList>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    listKeys(\n        appId: string,\n        queries?: string[],\n        total?: boolean,\n    ): Promise<Models.AppKeyList>;\n    listKeys(\n        paramsOrFirst:\n            { appId: string; queries?: string[]; total?: boolean } | string,\n        ...rest: [string[]?, boolean?]\n    ): Promise<Models.AppKeyList> {\n        let params: { appId: string; queries?: string[]; total?: boolean };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                queries?: string[];\n                total?: boolean;\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                queries: rest[0] as string[],\n                total: rest[1] as boolean,\n            };\n        }\n\n        const appId = params.appId;\n        const queries = params.queries;\n        const total = params.total;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        const apiPath = '/apps/{appId}/keys'.replace(\n            '{appId}',\n            encodeURIComponent(String(appId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            apiPayload['queries'] = queries;\n        }\n        if (typeof total !== 'undefined') {\n            apiPayload['total'] = total;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppKey>}\n     */\n    createKey(params: { appId: string }): Promise<Models.AppKey>;\n    /**\n     * Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.\n     *\n     * @param {string} appId - Application unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppKey>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createKey(appId: string): Promise<Models.AppKey>;\n    createKey(\n        paramsOrFirst: { appId: string } | string,\n    ): Promise<Models.AppKey> {\n        let params: { appId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { appId: string };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n            };\n        }\n\n        const appId = params.appId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        const apiPath = '/apps/{appId}/keys'.replace(\n            '{appId}',\n            encodeURIComponent(String(appId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('post', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get an app key by its unique ID.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string} params.keyId - App key unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppKey>}\n     */\n    getKey(params: { appId: string; keyId: string }): Promise<Models.AppKey>;\n    /**\n     * Get an app key by its unique ID.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string} keyId - App key unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppKey>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    getKey(appId: string, keyId: string): Promise<Models.AppKey>;\n    getKey(\n        paramsOrFirst: { appId: string; keyId: string } | string,\n        ...rest: [string?]\n    ): Promise<Models.AppKey> {\n        let params: { appId: string; keyId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { appId: string; keyId: string };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                keyId: rest[0] as string,\n            };\n        }\n\n        const appId = params.appId;\n        const keyId = params.keyId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        if (typeof keyId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"keyId\"');\n        }\n        const apiPath = '/apps/{appId}/keys/{keyId}'\n            .replace('{appId}', encodeURIComponent(String(appId)))\n            .replace('{keyId}', encodeURIComponent(String(keyId)));\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Delete an app key by its unique ID.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string} params.keyId - App key unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    deleteKey(params: { appId: string; keyId: string }): Promise<{}>;\n    /**\n     * Delete an app key by its unique ID.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string} keyId - App key unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    deleteKey(appId: string, keyId: string): Promise<{}>;\n    deleteKey(\n        paramsOrFirst: { appId: string; keyId: string } | string,\n        ...rest: [string?]\n    ): Promise<{}> {\n        let params: { appId: string; keyId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { appId: string; keyId: string };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                keyId: rest[0] as string,\n            };\n        }\n\n        const appId = params.appId;\n        const keyId = params.keyId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        if (typeof keyId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"keyId\"');\n        }\n        const apiPath = '/apps/{appId}/keys/{keyId}'\n            .replace('{appId}', encodeURIComponent(String(appId)))\n            .replace('{keyId}', encodeURIComponent(String(keyId)));\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('delete', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Update the labels of an application. Labels are read-only for clients; only a server SDK using a project API key can set them. Replaces the previous labels.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string[]} params.labels - Array of application labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.App>}\n     */\n    updateLabels(params: {\n        appId: string;\n        labels: string[];\n    }): Promise<Models.App>;\n    /**\n     * Update the labels of an application. Labels are read-only for clients; only a server SDK using a project API key can set them. Replaces the previous labels.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string[]} labels - Array of application labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.App>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateLabels(appId: string, labels: string[]): Promise<Models.App>;\n    updateLabels(\n        paramsOrFirst: { appId: string; labels: string[] } | string,\n        ...rest: [string[]?]\n    ): Promise<Models.App> {\n        let params: { appId: string; labels: string[] };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                labels: string[];\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                labels: rest[0] as string[],\n            };\n        }\n\n        const appId = params.appId;\n        const labels = params.labels;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        if (typeof labels === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"labels\"');\n        }\n        const apiPath = '/apps/{appId}/labels'.replace(\n            '{appId}',\n            encodeURIComponent(String(appId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof labels !== 'undefined') {\n            apiPayload['labels'] = labels;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('put', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * List client secrets for an application.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.\n     * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppSecretList>}\n     */\n    listSecrets(params: {\n        appId: string;\n        queries?: string[];\n        total?: boolean;\n    }): Promise<Models.AppSecretList>;\n    /**\n     * List client secrets for an application.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.\n     * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppSecretList>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    listSecrets(\n        appId: string,\n        queries?: string[],\n        total?: boolean,\n    ): Promise<Models.AppSecretList>;\n    listSecrets(\n        paramsOrFirst:\n            { appId: string; queries?: string[]; total?: boolean } | string,\n        ...rest: [string[]?, boolean?]\n    ): Promise<Models.AppSecretList> {\n        let params: { appId: string; queries?: string[]; total?: boolean };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                queries?: string[];\n                total?: boolean;\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                queries: rest[0] as string[],\n                total: rest[1] as boolean,\n            };\n        }\n\n        const appId = params.appId;\n        const queries = params.queries;\n        const total = params.total;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        const apiPath = '/apps/{appId}/secrets'.replace(\n            '{appId}',\n            encodeURIComponent(String(appId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            apiPayload['queries'] = queries;\n        }\n        if (typeof total !== 'undefined') {\n            apiPayload['total'] = total;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Create a new client secret for an application.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppSecretPlaintext>}\n     */\n    createSecret(params: { appId: string }): Promise<Models.AppSecretPlaintext>;\n    /**\n     * Create a new client secret for an application.\n     *\n     * @param {string} appId - Application unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppSecretPlaintext>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createSecret(appId: string): Promise<Models.AppSecretPlaintext>;\n    createSecret(\n        paramsOrFirst: { appId: string } | string,\n    ): Promise<Models.AppSecretPlaintext> {\n        let params: { appId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { appId: string };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n            };\n        }\n\n        const appId = params.appId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        const apiPath = '/apps/{appId}/secrets'.replace(\n            '{appId}',\n            encodeURIComponent(String(appId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('post', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get an application client secret by its unique ID.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string} params.secretId - Secret unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppSecret>}\n     */\n    getSecret(params: {\n        appId: string;\n        secretId: string;\n    }): Promise<Models.AppSecret>;\n    /**\n     * Get an application client secret by its unique ID.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string} secretId - Secret unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppSecret>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    getSecret(appId: string, secretId: string): Promise<Models.AppSecret>;\n    getSecret(\n        paramsOrFirst: { appId: string; secretId: string } | string,\n        ...rest: [string?]\n    ): Promise<Models.AppSecret> {\n        let params: { appId: string; secretId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                secretId: string;\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                secretId: rest[0] as string,\n            };\n        }\n\n        const appId = params.appId;\n        const secretId = params.secretId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        if (typeof secretId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"secretId\"',\n            );\n        }\n        const apiPath = '/apps/{appId}/secrets/{secretId}'\n            .replace('{appId}', encodeURIComponent(String(appId)))\n            .replace('{secretId}', encodeURIComponent(String(secretId)));\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Delete an application client secret by its unique ID.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string} params.secretId - Secret unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    deleteSecret(params: { appId: string; secretId: string }): Promise<{}>;\n    /**\n     * Delete an application client secret by its unique ID.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string} secretId - Secret unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    deleteSecret(appId: string, secretId: string): Promise<{}>;\n    deleteSecret(\n        paramsOrFirst: { appId: string; secretId: string } | string,\n        ...rest: [string?]\n    ): Promise<{}> {\n        let params: { appId: string; secretId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                secretId: string;\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                secretId: rest[0] as string,\n            };\n        }\n\n        const appId = params.appId;\n        const secretId = params.secretId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        if (typeof secretId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"secretId\"',\n            );\n        }\n        const apiPath = '/apps/{appId}/secrets/{secretId}'\n            .replace('{appId}', encodeURIComponent(String(appId)))\n            .replace('{secretId}', encodeURIComponent(String(secretId)));\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('delete', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Transfer an application to another team by its unique ID.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string} params.teamId - Team ID of the team to transfer application to.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.App>}\n     */\n    updateTeam(params: { appId: string; teamId: string }): Promise<Models.App>;\n    /**\n     * Transfer an application to another team by its unique ID.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string} teamId - Team ID of the team to transfer application to.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.App>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateTeam(appId: string, teamId: string): Promise<Models.App>;\n    updateTeam(\n        paramsOrFirst: { appId: string; teamId: string } | string,\n        ...rest: [string?]\n    ): Promise<Models.App> {\n        let params: { appId: string; teamId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { appId: string; teamId: string };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                teamId: rest[0] as string,\n            };\n        }\n\n        const appId = params.appId;\n        const teamId = params.teamId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        if (typeof teamId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"teamId\"');\n        }\n        const apiPath = '/apps/{appId}/team'.replace(\n            '{appId}',\n            encodeURIComponent(String(appId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof teamId !== 'undefined') {\n            apiPayload['teamId'] = teamId;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('patch', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Revoke all tokens for an application by its unique ID.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    deleteTokens(params: { appId: string }): Promise<{}>;\n    /**\n     * Revoke all tokens for an application by its unique ID.\n     *\n     * @param {string} appId - Application unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    deleteTokens(appId: string): Promise<{}>;\n    deleteTokens(paramsOrFirst: { appId: string } | string): Promise<{}> {\n        let params: { appId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { appId: string };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n            };\n        }\n\n        const appId = params.appId;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        const apiPath = '/apps/{appId}/tokens'.replace(\n            '{appId}',\n            encodeURIComponent(String(appId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('delete', uri, apiHeaders, apiPayload);\n    }\n}\n"]}