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>>;
    /**
     * Creates a new organization.
     * @param orgName The name of the organization to create.
     * @param request The request options.
     * @returns A promise that resolves to the created organization.
     */
    create(orgName: string, request?: SdkOptions): Promise<IOrganization>;
    invitations: {
        /**
         * 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.
         */
        list: (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.
         */
        create: (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.
         */
        findByToken: (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.
         */
        decline: (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.
         */
        delete: (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.
         */
        patch: (oid: string, id: string, info: PatchInfo, request?: SdkOptions) => Promise<InvitationSchema>;
        /**
         * Resends an invitation.
         * @param oid The organization ID.
         * @param id The invitation ID.
         * @param request The request options.
         * @returns A promise that resolves to the updated invitation.
         */
        resend: (oid: string, id: string, request?: SdkOptions) => Promise<InvitationSchema>;
    };
    users: {
        /**
         * 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.
         */
        list: (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
         */
        read: (oid: string, key: string, request?: SdkOptions) => Promise<IUser>;
        /**
         * Reads user objects in the organization by their keys.
         * Note that the API returns only the users that are part of the organization.
         * If a user is not part of the organization, it will not be ignored. It is up to the caller to handle this case.
         * @param oid The key of the organization parent organization.
         * @param eys A list of user keys to read.
         * @param request Optional request options.
         * @returns The created user object.
         */
        readBatch: (oid: string, keys: string[], request?: SdkOptions) => Promise<ContextListResult<IUser>>;
        /**
         * Activates a user in the organization.
         * If the user is already active the API will respond with an error.
         * @param oid The key of the organization parent organization.
         * @param key The user key.
         */
        activate: (oid: string, key: string, request?: SdkOptions) => Promise<IUser>;
        /**
         * Deactivates a user in the organization.
         * If the user is already deactivated the API will respond with an error.
         * @param oid The key of the organization parent organization.
         * @param key The user key.
         */
        deactivate: (oid: string, key: string, request?: SdkOptions) => Promise<IUser>;
        /**
         * Deletes a user from the organization.
         * @param oid The key of the organization parent organization.
         * @param key The user
         * @param request Optional request options.
         * @returns A promise that resolves when the user is deleted.
         */
        delete: (oid: string, key: string, request?: SdkOptions) => Promise<void>;
    };
}
//# sourceMappingURL=OrganizationsSdk.d.ts.map