import * as z from "zod"; import { type BadgeTier } from "../../components/atoms/VerificationBadge/VerificationBadge.types"; /** * Enum for Medium Status. * Improves type safety and avoids magic strings. */ export declare const MediumStatusEnum: readonly ["WAITING_APPROVAL", "ACTIVE", "INACTIVE", "SUSPENDED", "TRANSFERRED", "DECEASED", "RETIRED", "ON_LEAVE", "EXPELLED", "INITIATING", "VISITOR"]; export type MediumStatus = (typeof MediumStatusEnum)[number]; /** * Address schema for user profile. * Extracted for reusability and clarity. */ export declare const AddressSchema: z.ZodObject<{ id: z.ZodString; street: z.ZodString; number: z.ZodString; complement: z.ZodString; neighborhood: z.ZodString; city: z.ZodString; state: z.ZodString; zipCode: z.ZodString; country: z.ZodString; }, "strip", z.ZodTypeAny, { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }, { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }>; /** * Contact schema for user. * Extracted for reusability and clarity. */ export declare const ContactSchema: z.ZodObject<{ id: z.ZodString; phone: z.ZodString; contactPerson: z.ZodNullable; }, "strip", z.ZodTypeAny, { id: string; phone: string; contactPerson: string | null; }, { id: string; phone: string; contactPerson: string | null; }>; /** * User profile schema. * Extracted for clarity and single responsibility. */ export declare const UserProfileSchema: z.ZodObject<{ id: z.ZodString; firstName: z.ZodString; lastName: z.ZodString; birthDate: z.ZodNullable; guardianName: z.ZodOptional>; guardianPhone: z.ZodOptional>; guardianRelationship: z.ZodOptional>; avatarUrl: z.ZodNullable; address: z.ZodObject<{ id: z.ZodString; street: z.ZodString; number: z.ZodString; complement: z.ZodString; neighborhood: z.ZodString; city: z.ZodString; state: z.ZodString; zipCode: z.ZodString; country: z.ZodString; }, "strip", z.ZodTypeAny, { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }, { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }>; }, "strip", z.ZodTypeAny, { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }, { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }>; /** * User schema. * Extracted for clarity and single responsibility. */ export declare const UserSchema: z.ZodObject<{ id: z.ZodString; email: z.ZodString; contacts: z.ZodArray; }, "strip", z.ZodTypeAny, { id: string; phone: string; contactPerson: string | null; }, { id: string; phone: string; contactPerson: string | null; }>, "many">; profile: z.ZodObject<{ id: z.ZodString; firstName: z.ZodString; lastName: z.ZodString; birthDate: z.ZodNullable; guardianName: z.ZodOptional>; guardianPhone: z.ZodOptional>; guardianRelationship: z.ZodOptional>; avatarUrl: z.ZodNullable; address: z.ZodObject<{ id: z.ZodString; street: z.ZodString; number: z.ZodString; complement: z.ZodString; neighborhood: z.ZodString; city: z.ZodString; state: z.ZodString; zipCode: z.ZodString; country: z.ZodString; }, "strip", z.ZodTypeAny, { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }, { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }>; }, "strip", z.ZodTypeAny, { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }, { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }>; }, "strip", z.ZodTypeAny, { id: string; email: string; contacts: { id: string; phone: string; contactPerson: string | null; }[]; profile: { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }; }, { id: string; email: string; contacts: { id: string; phone: string; contactPerson: string | null; }[]; profile: { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }; }>; /** * Rank schema. * Extracted for clarity and single responsibility. */ export declare const RankSchema: z.ZodObject<{ id: z.ZodString; mediumId: z.ZodString; rankId: z.ZodString; date: z.ZodString; rank: z.ZodObject<{ id: z.ZodString; name: z.ZodString; level: z.ZodNumber; description: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; name: string; description: string; level: number; }, { id: string; name: string; description: string; level: number; }>; }, "strip", z.ZodTypeAny, { id: string; date: string; mediumId: string; rankId: string; rank: { id: string; name: string; description: string; level: number; }; }, { id: string; date: string; mediumId: string; rankId: string; rank: { id: string; name: string; description: string; level: number; }; }>; /** * Role schema. * Extracted for clarity and single responsibility. */ export declare const RoleSchema: z.ZodObject<{ id: z.ZodString; mediumId: z.ZodString; roleId: z.ZodString; startDate: z.ZodString; endDate: z.ZodNullable; role: z.ZodObject<{ id: z.ZodString; name: z.ZodString; description: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; name: string; description: string; }, { id: string; name: string; description: string; }>; }, "strip", z.ZodTypeAny, { id: string; role: { id: string; name: string; description: string; }; startDate: string; endDate: string | null; mediumId: string; roleId: string; }, { id: string; role: { id: string; name: string; description: string; }; startDate: string; endDate: string | null; mediumId: string; roleId: string; }>; /** * Main schema for MediumProfileView. * Uses extracted schemas for maintainability and readability. */ export declare const MediumProfileViewSchema: z.ZodObject<{ id: z.ZodString; userId: z.ZodString; terreiroId: z.ZodString; canViewGuardianData: z.ZodOptional; initiationDate: z.ZodNullable; status: z.ZodEnum<["WAITING_APPROVAL", "ACTIVE", "INACTIVE", "SUSPENDED", "TRANSFERRED", "DECEASED", "RETIRED", "ON_LEAVE", "EXPELLED", "INITIATING", "VISITOR"]>; user: z.ZodObject<{ id: z.ZodString; email: z.ZodString; contacts: z.ZodArray; }, "strip", z.ZodTypeAny, { id: string; phone: string; contactPerson: string | null; }, { id: string; phone: string; contactPerson: string | null; }>, "many">; profile: z.ZodObject<{ id: z.ZodString; firstName: z.ZodString; lastName: z.ZodString; birthDate: z.ZodNullable; guardianName: z.ZodOptional>; guardianPhone: z.ZodOptional>; guardianRelationship: z.ZodOptional>; avatarUrl: z.ZodNullable; address: z.ZodObject<{ id: z.ZodString; street: z.ZodString; number: z.ZodString; complement: z.ZodString; neighborhood: z.ZodString; city: z.ZodString; state: z.ZodString; zipCode: z.ZodString; country: z.ZodString; }, "strip", z.ZodTypeAny, { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }, { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }>; }, "strip", z.ZodTypeAny, { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }, { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }>; }, "strip", z.ZodTypeAny, { id: string; email: string; contacts: { id: string; phone: string; contactPerson: string | null; }[]; profile: { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }; }, { id: string; email: string; contacts: { id: string; phone: string; contactPerson: string | null; }[]; profile: { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }; }>; ranks: z.ZodArray; }, "strip", z.ZodTypeAny, { id: string; date: string; mediumId: string; rankId: string; rank: { id: string; name: string; description: string; level: number; }; }, { id: string; date: string; mediumId: string; rankId: string; rank: { id: string; name: string; description: string; level: number; }; }>, "many">; roles: z.ZodArray; role: z.ZodObject<{ id: z.ZodString; name: z.ZodString; description: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; name: string; description: string; }, { id: string; name: string; description: string; }>; }, "strip", z.ZodTypeAny, { id: string; role: { id: string; name: string; description: string; }; startDate: string; endDate: string | null; mediumId: string; roleId: string; }, { id: string; role: { id: string; name: string; description: string; }; startDate: string; endDate: string | null; mediumId: string; roleId: string; }>, "many">; }, "strip", z.ZodTypeAny, { id: string; status: "ACTIVE" | "WAITING_APPROVAL" | "INACTIVE" | "SUSPENDED" | "TRANSFERRED" | "DECEASED" | "RETIRED" | "ON_LEAVE" | "EXPELLED" | "INITIATING" | "VISITOR"; ranks: { id: string; date: string; mediumId: string; rankId: string; rank: { id: string; name: string; description: string; level: number; }; }[]; roles: { id: string; role: { id: string; name: string; description: string; }; startDate: string; endDate: string | null; mediumId: string; roleId: string; }[]; userId: string; terreiroId: string; initiationDate: string | null; user: { id: string; email: string; contacts: { id: string; phone: string; contactPerson: string | null; }[]; profile: { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }; }; canViewGuardianData?: boolean | undefined; }, { id: string; status: "ACTIVE" | "WAITING_APPROVAL" | "INACTIVE" | "SUSPENDED" | "TRANSFERRED" | "DECEASED" | "RETIRED" | "ON_LEAVE" | "EXPELLED" | "INITIATING" | "VISITOR"; ranks: { id: string; date: string; mediumId: string; rankId: string; rank: { id: string; name: string; description: string; level: number; }; }[]; roles: { id: string; role: { id: string; name: string; description: string; }; startDate: string; endDate: string | null; mediumId: string; roleId: string; }[]; userId: string; terreiroId: string; initiationDate: string | null; user: { id: string; email: string; contacts: { id: string; phone: string; contactPerson: string | null; }[]; profile: { id: string; address: { number: string; id: string; country: string; street: string; complement: string; neighborhood: string; city: string; state: string; zipCode: string; }; firstName: string; lastName: string; avatarUrl: string | null; birthDate: string | null; guardianName?: string | null | undefined; guardianPhone?: string | null | undefined; guardianRelationship?: string | null | undefined; }; }; canViewGuardianData?: boolean | undefined; }>; /** * Pending approval request schema for MediumProfileViewPage. */ export declare const RequestStatusEnum: readonly ["PENDING", "APPROVED", "REJECTED", "CANCELLED"]; export type RequestStatus = (typeof RequestStatusEnum)[number]; export declare const RequestTypeEnum: readonly ["MEDIUM_APPROVAL", "ROLE_CHANGE", "RANK_CHANGE", "STATUS_CHANGE"]; export type RequestType = (typeof RequestTypeEnum)[number]; export declare const PendingApprovalRequestSchema: z.ZodObject<{ hasPendingRequest: z.ZodBoolean; request: z.ZodNullable; status: z.ZodEnum<["PENDING", "APPROVED", "REJECTED", "CANCELLED"]>; description: z.ZodOptional; consentSummary: z.ZodOptional; acknowledgedFee: z.ZodOptional; requiresPrivacyPolicy: z.ZodOptional; requiresMonthlyFeeAcknowledgement: z.ZodOptional; feeAmountSnapshot: z.ZodOptional; feeDueDaySnapshot: z.ZodOptional; }, "strip", z.ZodTypeAny, { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; }, { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; description?: string | undefined; consentSummary?: { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; } | undefined; }, { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; description?: string | undefined; consentSummary?: { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; } | undefined; }>>; profileCompletion: z.ZodOptional; totalRequired: z.ZodNumber; completedRequired: z.ZodNumber; missingFields: z.ZodArray; missingSections: z.ZodArray; }, "strip", z.ZodTypeAny, { percent: number | null; totalRequired: number; completedRequired: number; missingFields: string[]; missingSections: string[]; }, { percent: number | null; totalRequired: number; completedRequired: number; missingFields: string[]; missingSections: string[]; }>>; }, "strip", z.ZodTypeAny, { hasPendingRequest: boolean; request: { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; description?: string | undefined; consentSummary?: { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; } | undefined; } | null; profileCompletion?: { percent: number | null; totalRequired: number; completedRequired: number; missingFields: string[]; missingSections: string[]; } | undefined; }, { hasPendingRequest: boolean; request: { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; description?: string | undefined; consentSummary?: { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; } | undefined; } | null; profileCompletion?: { percent: number | null; totalRequired: number; completedRequired: number; missingFields: string[]; missingSections: string[]; } | undefined; }>; export type PendingApprovalRequest = z.infer; export declare const RequestHistoryItemSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodEnum<["MEDIUM_APPROVAL", "ROLE_CHANGE", "RANK_CHANGE", "STATUS_CHANGE"]>; status: z.ZodEnum<["PENDING", "APPROVED", "REJECTED", "CANCELLED"]>; description: z.ZodOptional; reviewNotes: z.ZodOptional; reviewDate: z.ZodOptional; createdAt: z.ZodString; updatedAt: z.ZodString; metadata: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; createdAt: string; updatedAt: string; metadata?: any; description?: string | undefined; reviewNotes?: string | undefined; reviewDate?: string | undefined; }, { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; createdAt: string; updatedAt: string; metadata?: any; description?: string | undefined; reviewNotes?: string | undefined; reviewDate?: string | undefined; }>; export type RequestHistoryItem = z.infer; /** * State shape for pending approval status. */ export declare const PendingApprovalStateSchema: z.ZodObject<{ pendingApprovalRequest: z.ZodObject<{ hasPendingRequest: z.ZodBoolean; request: z.ZodNullable; status: z.ZodEnum<["PENDING", "APPROVED", "REJECTED", "CANCELLED"]>; description: z.ZodOptional; consentSummary: z.ZodOptional; acknowledgedFee: z.ZodOptional; requiresPrivacyPolicy: z.ZodOptional; requiresMonthlyFeeAcknowledgement: z.ZodOptional; feeAmountSnapshot: z.ZodOptional; feeDueDaySnapshot: z.ZodOptional; }, "strip", z.ZodTypeAny, { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; }, { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; description?: string | undefined; consentSummary?: { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; } | undefined; }, { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; description?: string | undefined; consentSummary?: { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; } | undefined; }>>; profileCompletion: z.ZodOptional; totalRequired: z.ZodNumber; completedRequired: z.ZodNumber; missingFields: z.ZodArray; missingSections: z.ZodArray; }, "strip", z.ZodTypeAny, { percent: number | null; totalRequired: number; completedRequired: number; missingFields: string[]; missingSections: string[]; }, { percent: number | null; totalRequired: number; completedRequired: number; missingFields: string[]; missingSections: string[]; }>>; }, "strip", z.ZodTypeAny, { hasPendingRequest: boolean; request: { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; description?: string | undefined; consentSummary?: { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; } | undefined; } | null; profileCompletion?: { percent: number | null; totalRequired: number; completedRequired: number; missingFields: string[]; missingSections: string[]; } | undefined; }, { hasPendingRequest: boolean; request: { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; description?: string | undefined; consentSummary?: { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; } | undefined; } | null; profileCompletion?: { percent: number | null; totalRequired: number; completedRequired: number; missingFields: string[]; missingSections: string[]; } | undefined; }>; isPendingApprovalSuccess: z.ZodBoolean; isPendingApprovalLoading: z.ZodBoolean; }, "strip", z.ZodTypeAny, { pendingApprovalRequest: { hasPendingRequest: boolean; request: { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; description?: string | undefined; consentSummary?: { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; } | undefined; } | null; profileCompletion?: { percent: number | null; totalRequired: number; completedRequired: number; missingFields: string[]; missingSections: string[]; } | undefined; }; isPendingApprovalSuccess: boolean; isPendingApprovalLoading: boolean; }, { pendingApprovalRequest: { hasPendingRequest: boolean; request: { id: string; type: "MEDIUM_APPROVAL" | "ROLE_CHANGE" | "RANK_CHANGE" | "STATUS_CHANGE"; status: "PENDING" | "APPROVED" | "REJECTED" | "CANCELLED"; description?: string | undefined; consentSummary?: { acceptedPrivacyPolicy?: boolean | undefined; acknowledgedFee?: boolean | undefined; requiresPrivacyPolicy?: boolean | undefined; requiresMonthlyFeeAcknowledgement?: boolean | undefined; feeAmountSnapshot?: number | undefined; feeDueDaySnapshot?: number | undefined; } | undefined; } | null; profileCompletion?: { percent: number | null; totalRequired: number; completedRequired: number; missingFields: string[]; missingSections: string[]; } | undefined; }; isPendingApprovalSuccess: boolean; isPendingApprovalLoading: boolean; }>; export type UpdateRequestStatusType = "ACCEPT" | "REJECT" | undefined; /** * Schema for available roles passed to the role management card. */ export declare const AvailableRoleSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; description: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; name: string; description?: string | null | undefined; }, { id: string; name: string; description?: string | null | undefined; }>; export declare const AvailableRankSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; description: z.ZodOptional>; }, "strip", z.ZodTypeAny, { id: string; name: string; description?: string | null | undefined; }, { id: string; name: string; description?: string | null | undefined; }>; export type AvailableRole = z.infer; export type AvailableRank = z.infer; export interface MediumProfileViewPageProps { medium: MediumProfileView; isAdmin: boolean; /** Whether the user is viewing from a personal (non-terreiro) profile */ isPersonalProfile?: boolean; /** Badge tier for profile verification display */ badgeTier?: BadgeTier; pendingApprovalRequest?: PendingApprovalRequest; isPendingApprovalSuccess: boolean; isPendingApprovalLoading: boolean; isUpdatingRequestStatus?: boolean; updateRequestStatusType?: UpdateRequestStatusType; updateRequestStatusError?: string | null; onBack: () => void; onReject?: (requestId: string, notes: string) => void; onAccept?: (requestId: string) => void; /** Whether the current user can manage approval requests */ canManageRequests?: boolean; requestHistory?: RequestHistoryItem[]; isLoadingRequestHistory?: boolean; requestHistoryError?: string | null; /** Whether the current user can manage this medium's roles */ canManageRoles?: boolean; /** Whether the current user can manage this medium's graduation */ canManageRanks?: boolean; /** Whether this is the current user's own profile (blocks self-assignment) */ isSelf?: boolean; /** All available roles in the terreiro (for the multi-select dropdown) */ availableRoles?: AvailableRole[]; /** All available graduations for the medium edit dropdown */ availableRanks?: AvailableRank[]; /** Callback when roles are saved */ onSaveRoles?: (roleIds: string[]) => void; /** Callback when the selected graduation is saved */ onSaveRank?: (rankId: string | null) => void; /** Whether role save is in progress */ isSavingRoles?: boolean; /** Whether rank save is in progress */ isSavingRank?: boolean; /** Error message from role save attempt */ saveRolesError?: string | null; /** Error message from rank save attempt */ saveRankError?: string | null; /** Whether export history action should be shown */ canExportHistory?: boolean; /** Whether export request is currently in progress */ isExportingHistory?: boolean; /** Callback to export medium history as XML */ onExportHistory?: () => void; } export type PendingApprovalState = z.infer; export type MediumProfileView = z.infer; export declare const InfoListItemPropsSchema: z.ZodObject<{ label: z.ZodOptional; value: z.ZodAny; }, "strip", z.ZodTypeAny, { label?: any; value?: any; }, { label?: any; value?: any; }>; export type InfoListItemProps = z.infer;