import { SdkBase, SdkOptions } from './SdkBase.js';
import type { ContextListOptions, ContextListResult } from '../../events/BaseEvents.js';
import type { IOrganization, UserOrganizationGrantType } from '../../models/store/Organization.js';
import type { InvitationSchema } from '../../models/store/Invitation.js';
import type { PatchInfo } from '../../patch/types.js';
import type { IUser } from '../../models/store/User.js';
export declare class OrganizationsSdk extends SdkBase {
    /**
     * Lists all user organizations.
     */
    list(request?: SdkOptions): Promise<ContextListResult<IOrganization>>;
    create(orgName: string, request?: SdkOptions): Promise<IOrganization>;
    /**
     * Lists all invitations for a given organization.
     * @param oid The organization ID.
     * @param request The request options.
     * @returns A promise that resolves to a list of invitations.
     */
    listInvitations(oid: string, request?: SdkOptions): Promise<ContextListResult<InvitationSchema>>;
    /**
     * Creates an invitation for a user to join an organization.
     * @param oid The organization ID.
     * @param email The email address of the user to invite.
     * @param grant_type The type of grant for the user.
     * @param name The name of the user (optional).
     * @param request The request options.
     * @returns A promise that resolves to the created invitation.
     */
    createInvitation(oid: string, email: string, grant_type: UserOrganizationGrantType, name?: string, request?: SdkOptions): Promise<InvitationSchema>;
    /**
     * Finds an invitation by its token.
     * @param oid The organization ID.
     * @param token The invitation token.
     * @param request The request options.
     * @returns A promise that resolves to the found invitation.
     */
    findInvitationByToken(oid: string, token: string, request?: SdkOptions): Promise<InvitationSchema>;
    /**
     * Declines an invitation.
     * @param oid The organization ID.
     * @param id The invitation ID.
     * @param request The request options.
     * @returns A promise that resolves when the invitation is declined.
     */
    declineInvitation(oid: string, id: string, request?: SdkOptions): Promise<InvitationSchema>;
    /**
     * Soft-deletes an invitation.
     * @param oid The organization ID.
     * @param id The invitation ID.
     * @param request The request options.
     * @returns A promise that resolves to the deleted invitation.
     */
    deleteInvitation(oid: string, id: string, request?: SdkOptions): Promise<InvitationSchema>;
    /**
     * Patches an invitation. The server performs the patch validation.
     * The API only allows to patch some of the invitation properties:
     * - name
     * - expires_at
     * - grant_type
     * @param oid The organization ID.
     * @param id The invitation ID.
     * @param info The patch information.
     * @param request The request options.
     * @returns A promise that resolves to the patched invitation.
     */
    patchInvitation(oid: string, id: string, info: PatchInfo, request?: SdkOptions): Promise<InvitationSchema>;
    /**
     * Lists users in the organization.
     *
     * @param oid The key of the organization we want to read the user from.
     * @param options Optional query options.
     * @param request Optional request options.
     */
    listUsers(oid: string, options?: ContextListOptions, request?: SdkOptions): Promise<ContextListResult<IUser>>;
    /**
     * Gets a user by its key in the organization.
     *
     * @param oid The key of the organization parent organization.
     * @param key The user key.
     * @param request Optional request options.
     * @returns The user object
     * @deprecated Use `organizations.readUser()` instead.
     */
    getUser(oid: string, key: string, request?: SdkOptions): Promise<IUser>;
}
//# sourceMappingURL=OrganizationsSdk.d.ts.map