import { CustomFieldValue, ExecutorOrCreator, TaskSortMethod, UserSnippet, PermissionBinding, TasklistId, MemberIdentityId } from 'teambition-types'; import { ProjectId, UserId, OrganizationId, RoleId, CollectionId, ApplicationId } from 'teambition-types'; import { OrganizationSchema } from './Organization'; import { UserPaymentPlan } from './UserMe'; import { Role } from './CustomRole'; declare type AlienType = { refId: string; url: string; extra: { url: string; settingUrl: string; }; }; export interface ProjectSchema { _creatorId: UserId; _defaultCollectionId: CollectionId; _defaultRoleId: RoleId | null; _id: ProjectId; _orgRoleId: RoleId | null; _ownerId?: UserId; _organizationId: OrganizationId | null; _parendId: ProjectId; _roleId: RoleId | null; _rootCollectionId: CollectionId; _suspendedById: UserId | null; _sourceId: ProjectId | null; alien?: AlienType; applications?: { _id: ApplicationId; name: string; type?: number; order?: number; }[]; category: string; cover: string; created: string; creator: ExecutorOrCreator; customfields: CustomFieldValue[]; description: string; endDate: string | null; eventsCount: number; hasOrgRight: number; hasRight: number; inviteLink: string | null; isArchived: boolean; isDeleted: boolean; isPublic: boolean; isStar: boolean; isSuspended: boolean; isTemplate: boolean; logo: string; labels?: string[]; memberIdentityIds?: MemberIdentityId[]; membersCount: number; name: string; openId?: string; organization?: Pick; orgLevel: number; owner?: UserSnippet; permissionBinding?: PermissionBinding; pinyin: string; plan?: UserPaymentPlan; postsCount: number; pushStatus: boolean; py: string; role: Role; roles: Role[]; shortLink?: string; sortMethod: TaskSortMethod; starsCount: number; startDate: string | null; statusDegree: { name?: string; content?: string; degree?: 'normal' | 'risky' | 'urgent'; updated: string; }; suspendedAt: string | null; suspendedBy?: UserSnippet | null; syncCountsAt: string; tagsCount: number; taskDefaultInvolvesVisibility: { involvesVisibility: 'all' | 'partial' | 'none'; tasklistIds: TasklistId[]; }; tasksCount: number; uniqueIdPrefix: string; unreadCount: number; updated: string; visibility: 'project' | 'organization' | 'all'; worksCount: number; proTemplateType?: string; normalType: string | null; windowModeOfAddTask: 'large' | 'default'; payload?: { autoTaskScheduling?: boolean; }; preference?: { taskViewMode?: 'scenarioConfigStatus' | 'stage'; }; } export {};