import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import { CreateTeamRequestBody, CreateTeamResponseBody } from "../models/createteamop.js";
import { DeleteMicrofrontendsGroupRequest, DeleteMicrofrontendsGroupResponseBody } from "../models/deletemicrofrontendsgroupop.js";
import { DeleteTeamInviteCodeRequest, DeleteTeamInviteCodeResponseBody } from "../models/deleteteaminvitecodeop.js";
import { DeleteTeamRequest, DeleteTeamResponseBody } from "../models/deleteteamop.js";
import { GetTeamAccessRequestRequest, GetTeamAccessRequestResponseBody } from "../models/getteamaccessrequestop.js";
import { GetTeamMembersRequest, GetTeamMembersResponseBody } from "../models/getteammembersop.js";
import { GetTeamRequest } from "../models/getteamop.js";
import { GetTeamsRequest, GetTeamsResponseBody } from "../models/getteamsop.js";
import { InvitedTeamMember } from "../models/invitedteammember.js";
import { InviteUserToTeamRequest } from "../models/inviteusertoteamop.js";
import { JoinTeamRequest, JoinTeamResponseBody } from "../models/jointeamop.js";
import { PatchTeamRequest } from "../models/patchteamop.js";
import { PostTeamDsyncRolesRequest, PostTeamDsyncRolesResponseBody } from "../models/postteamdsyncrolesop.js";
import { RemoveTeamMemberRequest, RemoveTeamMemberResponseBody } from "../models/removeteammemberop.js";
import { RequestAccessToTeamRequest, RequestAccessToTeamResponseBody } from "../models/requestaccesstoteamop.js";
import { Team } from "../models/team.js";
import { UpdateMicrofrontendsGroupRequest, UpdateMicrofrontendsGroupResponseBody } from "../models/updatemicrofrontendsgroupop.js";
import { UpdateTeamMemberRequest, UpdateTeamMemberResponseBody } from "../models/updateteammemberop.js";
export declare class Teams extends ClientSDK {
    /**
     * List team members
     *
     * @remarks
     * Get a paginated list of team members for the provided team.
     */
    getTeamMembers(request: GetTeamMembersRequest, options?: RequestOptions): Promise<GetTeamMembersResponseBody>;
    /**
     * Invite a user
     *
     * @remarks
     * Invite a user to join the team specified in the URL. The authenticated user needs to be an `OWNER` in order to successfully invoke this endpoint. The user to be invited must be specified by email.
     */
    inviteUserToTeam(request: InviteUserToTeamRequest, options?: RequestOptions): Promise<InvitedTeamMember>;
    /**
     * Request access to a team
     *
     * @remarks
     * Request access to a team as a member. An owner has to approve the request. Only 100 users can request access to a team at the same time.
     */
    requestAccessToTeam(request: RequestAccessToTeamRequest, options?: RequestOptions): Promise<RequestAccessToTeamResponseBody>;
    /**
     * Get access request status
     *
     * @remarks
     * Check the status of a join request. It'll respond with a 404 if the request has been declined. If no `userId` path segment was provided, this endpoint will instead return the status of the authenticated user.
     */
    getTeamAccessRequest(request: GetTeamAccessRequestRequest, options?: RequestOptions): Promise<GetTeamAccessRequestResponseBody>;
    /**
     * Join a team
     *
     * @remarks
     * Join a team with a provided invite code or team ID.
     */
    joinTeam(request: JoinTeamRequest, options?: RequestOptions): Promise<JoinTeamResponseBody>;
    /**
     * Update a Team Member
     *
     * @remarks
     * Update the membership of a Team Member on the Team specified by `teamId`, such as changing the _role_ of the member, or confirming a request to join the Team for an unconfirmed member. The authenticated user must be an `OWNER` of the Team.
     */
    updateTeamMember(request: UpdateTeamMemberRequest, options?: RequestOptions): Promise<UpdateTeamMemberResponseBody>;
    /**
     * Remove a Team Member
     *
     * @remarks
     * Remove a Team Member from the Team, or dismiss a user that requested access, or leave a team. Directory Sync members can be removed when their directory email is absent or does not match the user's primary or verified secondary emails.
     */
    removeTeamMember(request: RemoveTeamMemberRequest, options?: RequestOptions): Promise<RemoveTeamMemberResponseBody>;
    /**
     * Get a Team
     *
     * @remarks
     * Get information for the Team specified by the `teamId` parameter.
     */
    getTeam(request: GetTeamRequest, options?: RequestOptions): Promise<Team>;
    /**
     * Update a Team
     *
     * @remarks
     * Update the information of a Team specified by the `teamId` parameter. The request body should contain the information that will be updated on the Team.
     */
    patchTeam(request: PatchTeamRequest, options?: RequestOptions): Promise<Team>;
    /**
     * List all teams
     *
     * @remarks
     * Get a paginated list of all the Teams the authenticated User is a member of.
     */
    getTeams(request: GetTeamsRequest, options?: RequestOptions): Promise<GetTeamsResponseBody>;
    /**
     * Create a Team
     *
     * @remarks
     * Create a new Team under your account. You need to send a POST request with the desired Team slug, and optionally the Team name.
     */
    createTeam(request: CreateTeamRequestBody, options?: RequestOptions): Promise<CreateTeamResponseBody>;
    /**
     * Update Team Directory Sync Role Mappings
     *
     * @remarks
     * Update the Directory Sync role mappings for a Team. This endpoint allows updating the mapping between directory groups and team roles or access groups.
     */
    postTeamDsyncRoles(request: PostTeamDsyncRolesRequest, options?: RequestOptions): Promise<PostTeamDsyncRolesResponseBody>;
    /**
     * Delete a Team
     *
     * @remarks
     * Delete a team under your account. You need to send a `DELETE` request with the desired team `id`. An optional array of reasons for deletion may also be sent.
     */
    deleteTeam(request: DeleteTeamRequest, options?: RequestOptions): Promise<DeleteTeamResponseBody>;
    /**
     * Delete a Team invite code
     *
     * @remarks
     * Delete an active Team invite code.
     */
    deleteTeamInviteCode(request: DeleteTeamInviteCodeRequest, options?: RequestOptions): Promise<DeleteTeamInviteCodeResponseBody>;
    /**
     * Update a microfrontends group
     *
     * @remarks
     * Updates a microfrontends group's settings.
     */
    updateMicrofrontendsGroup(request: UpdateMicrofrontendsGroupRequest, options?: RequestOptions): Promise<UpdateMicrofrontendsGroupResponseBody>;
    /**
     * Delete a microfrontends group
     *
     * @remarks
     * Deletes a microfrontends group from the team associated with the group ID.
     */
    deleteMicrofrontendsGroup(request: DeleteMicrofrontendsGroupRequest, options?: RequestOptions): Promise<DeleteMicrofrontendsGroupResponseBody>;
}
//# sourceMappingURL=teams.d.ts.map