import type { RequestOptions } from "../base-client";
import { RequestBuilder } from "../request-builder";
export interface PortalInvitation {
    id: string;
    type: "portal-invitation";
    attributes: {
        email: string;
        expires_at: string;
        accepted_at: string | null;
        inserted_at: string;
        updated_at: string;
    };
    relationships?: {
        tenant?: {
            data: {
                id: string;
                type: string;
            };
        };
        invited_by?: {
            data: {
                id: string;
                type: string;
            };
        };
    };
}
export interface PortalChangeRequest {
    id: string;
    type: "portal-change-request";
    attributes: {
        field_name: string;
        old_value: string | null;
        new_value: string;
        status: string;
        reviewed_at: string | null;
        inserted_at: string;
        updated_at: string;
    };
    relationships?: {
        portal_user?: {
            data: {
                id: string;
                type: string;
            };
        };
        tenant?: {
            data: {
                id: string;
                type: string;
            };
        };
        reviewed_by?: {
            data: {
                id: string;
                type: string;
            } | null;
        };
    };
}
export declare function createPortalNamespace(rb: RequestBuilder): {
    invitations: {
        /**
         * List all portal invitations.
         */
        list: (options?: RequestOptions) => Promise<PortalInvitation[]>;
        /**
         * Create a new portal invitation.
         * @param email - Email to invite
         * @param tenantId - Tenant to invite into
         * @param invitedById - User who is sending the invitation
         */
        create: (email: string, tenantId: string, invitedById: string, options?: RequestOptions) => Promise<PortalInvitation>;
        /**
         * Delete a portal invitation.
         * @param id - Invitation ID
         */
        delete: (id: string, options?: RequestOptions) => Promise<void>;
    };
    changeRequests: {
        /**
         * List all portal change requests.
         */
        list: (options?: RequestOptions) => Promise<PortalChangeRequest[]>;
        /**
         * Approve a change request.
         * @param id - Change request ID
         * @param reviewedById - Admin user approving
         */
        approve: (id: string, reviewedById: string, options?: RequestOptions) => Promise<PortalChangeRequest>;
        /**
         * Reject a change request.
         * @param id - Change request ID
         * @param reviewedById - Admin user rejecting
         */
        reject: (id: string, reviewedById: string, options?: RequestOptions) => Promise<PortalChangeRequest>;
    };
};
//# sourceMappingURL=portal.d.ts.map