import { APIResource } from "../../core/resource.js";
import { PagePromise, SinglePage } from "../../core/pagination.js";
import { RequestOptions } from "../../internal/request-options.js";
export declare class BaseOAuthScopes extends APIResource {
    static readonly _key: readonly ['iam', 'oauthScopes'];
    /**
     * List all available OAuth scopes. This endpoint requires authentication but has
     * no authorization role requirements.
     *
     * @example
     * ```ts
     * // Automatically fetches more pages as needed.
     * for await (const oauthScopeListResponse of client.iam.oauthScopes.list()) {
     *   // ...
     * }
     * ```
     */
    list(options?: RequestOptions): PagePromise<OAuthScopeListResponsesSinglePage, OAuthScopeListResponse>;
}
export declare class OAuthScopes extends BaseOAuthScopes {
}
export type OAuthScopeListResponsesSinglePage = SinglePage<OAuthScopeListResponse>;
/**
 * An available OAuth scope that can be assigned to an OAuth client.
 */
export interface OAuthScopeListResponse {
    /**
     * The scope label to use in the scopes array when creating or updating an OAuth
     * client.
     */
    id: string;
    /**
     * Human-readable name of the OAuth scope.
     */
    name: string;
    /**
     * Category for grouping scopes in the UI.
     */
    category?: string;
    /**
     * The underlying resource scopes (Bach scopes) that define which resources this
     * OAuth scope can act upon.
     */
    scopes?: Array<string>;
}
export declare namespace OAuthScopes {
    export { type OAuthScopeListResponse as OAuthScopeListResponse, type OAuthScopeListResponsesSinglePage as OAuthScopeListResponsesSinglePage, };
}
//# sourceMappingURL=oauth-scopes.d.ts.map