export {};
export declare const enum JoinRequestStatusEnum {
    Pending = "pending",
    Approved = "approved",
    Rejected = "rejected",
    Cancelled = "cancelled"
}
export declare const enum JoinResultStatusEnum {
    Success = "success",
    Pending = "pending"
}
declare global {
    namespace Amity {
        type JoinRequestStatus = JoinRequestStatusEnum;
        type JoinResultStatus = JoinResultStatusEnum;
        type JoinRequestType = 'communityJoinRequest';
        type JoinResult = {
            status: Amity.JoinResultStatus;
            request?: Amity.JoinRequest;
        };
        type RawJoinRequest = {
            _id: string;
            createdAt: Amity.timestamp;
            joinRequestId: string;
            networkId: string;
            requestorId: string;
            requestorInternalId: string;
            requestorPublicId: string;
            respondedAt: Amity.timestamp | null;
            responderId: string | null;
            responderInternalId: string | null;
            responderPublicId: string | null;
            status: Amity.JoinRequestStatus;
            targetId: string;
            targetType: string;
            type: Amity.JoinRequestType;
            updatedAt: Amity.timestamp;
            userId: string;
        };
        type InternalJoinRequest = Omit<RawJoinRequest, '_id'>;
        type JoinRequest = Omit<Amity.InternalJoinRequest, 'responderId'> & Amity.JoinRequestLinkedObject & {
            user?: Amity.User;
            feeds?: Amity.Feed[];
            files?: Amity.File[];
        };
        type JoinRequestLinkedObject = {
            cancel: () => Promise<void>;
            approve: () => Promise<void>;
            reject: () => Promise<void>;
        };
    }
}
//# sourceMappingURL=joinRequest.d.ts.map