import BaseResource from '../../BaseResource';
import type * as ApiTypes from '../ApiTypes';
import type * as RawApiTypes from '../RawApiTypes';
export default class SiteInvitation extends BaseResource {
    static readonly TYPE: "site_invitation";
    /**
     * Invite a new user
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/create
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    create(body: ApiTypes.SiteInvitationCreateSchema): Promise<ApiTypes.SiteInvitation>;
    /**
     * Invite a new user
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/create
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawCreate(body: RawApiTypes.SiteInvitationCreateSchema): Promise<RawApiTypes.SiteInvitationCreateTargetSchema>;
    /**
     * Update an invitation
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/update
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    update(siteInvitationId: string | ApiTypes.SiteInvitationData, body: ApiTypes.SiteInvitationUpdateSchema): Promise<ApiTypes.SiteInvitation>;
    /**
     * Update an invitation
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/update
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawUpdate(siteInvitationId: string, body: RawApiTypes.SiteInvitationUpdateSchema): Promise<RawApiTypes.SiteInvitationUpdateTargetSchema>;
    /**
     * List all invitations
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    list(): Promise<ApiTypes.SiteInvitationInstancesTargetSchema>;
    /**
     * List all invitations
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawList(): Promise<RawApiTypes.SiteInvitationInstancesTargetSchema>;
    /**
     * Retrieve an invitation
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    find(siteInvitationId: string | ApiTypes.SiteInvitationData): Promise<ApiTypes.SiteInvitation>;
    /**
     * Retrieve an invitation
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawFind(siteInvitationId: string): Promise<RawApiTypes.SiteInvitationSelfTargetSchema>;
    /**
     * Delete an invitation
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    destroy(siteInvitationId: string | ApiTypes.SiteInvitationData): Promise<ApiTypes.SiteInvitation>;
    /**
     * Delete an invitation
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawDestroy(siteInvitationId: string): Promise<RawApiTypes.SiteInvitationDestroyTargetSchema>;
    /**
     * Resend an invitation
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/resend
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    resend(siteInvitationId: string | ApiTypes.SiteInvitationData): Promise<ApiTypes.SiteInvitation>;
    /**
     * Resend an invitation
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/site-invitation/resend
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawResend(siteInvitationId: string): Promise<RawApiTypes.SiteInvitationResendTargetSchema>;
}
