import * as Core from 'cloudflaredev/core';
import { APIResource } from 'cloudflaredev/resource';
import * as InvitesAPI from 'cloudflaredev/resources/user/invites';
import * as Shared from 'cloudflaredev/resources/shared';
import { SinglePage } from 'cloudflaredev/pagination';
export declare class Invites extends APIResource {
    /**
     * Lists all invitations associated with my user.
     */
    list(options?: Core.RequestOptions): Core.PagePromise<InvitesSinglePage, Invite>;
    /**
     * Responds to an invitation.
     */
    edit(inviteId: string, body: InviteEditParams, options?: Core.RequestOptions): Core.APIPromise<InviteEditResponse>;
    /**
     * Gets the details of an invitation.
     */
    get(inviteId: string, options?: Core.RequestOptions): Core.APIPromise<InviteGetResponse>;
}
export declare class InvitesSinglePage extends SinglePage<Invite> {
}
export interface Invite {
    /**
     * ID of the user to add to the organization.
     */
    invited_member_id: string | null;
    /**
     * ID of the organization the user will be added to.
     */
    organization_id: string;
    /**
     * Invite identifier tag.
     */
    id?: string;
    /**
     * When the invite is no longer active.
     */
    expires_on?: string;
    /**
     * The email address of the user who created the invite.
     */
    invited_by?: string;
    /**
     * Email address of the user to add to the organization.
     */
    invited_member_email?: string;
    /**
     * When the invite was sent.
     */
    invited_on?: string;
    /**
     * Organization name.
     */
    organization_name?: string;
    /**
     * Roles to be assigned to this user.
     */
    roles?: Array<Shared.Role>;
    /**
     * Current status of the invitation.
     */
    status?: 'pending' | 'accepted' | 'rejected' | 'expired';
}
export type InviteEditResponse = unknown | string | null;
export type InviteGetResponse = unknown | string | null;
export interface InviteEditParams {
    /**
     * Status of your response to the invitation (rejected or accepted).
     */
    status: 'accepted' | 'rejected';
}
export declare namespace Invites {
    export import Invite = InvitesAPI.Invite;
    export import InviteEditResponse = InvitesAPI.InviteEditResponse;
    export import InviteGetResponse = InvitesAPI.InviteGetResponse;
    export import InvitesSinglePage = InvitesAPI.InvitesSinglePage;
    export import InviteEditParams = InvitesAPI.InviteEditParams;
}
//# sourceMappingURL=invites.d.ts.map