import { CustomFieldType, CustomFieldBoundType, AdvancedCustomField, CustomFieldSubtype, UserId, UserSnippet, MemberIdentityId } from 'teambition-types'; import { CustomFieldId, CustomFieldLinkId, ProjectId, RoleId, CustomFieldCategoryId, CustomFieldEntityId, CustomFieldRelevantSetting } from 'teambition-types'; import { CustomFieldChoiceSchema } from './CustomFieldChoice'; export interface CustomFieldLinkBaseSchema { _customfieldId: CustomFieldId; _customfieldentityId?: CustomFieldEntityId; _id: CustomFieldLinkId; _lockerId: UserId | null; _projectId: ProjectId; _roleIds: RoleId[]; allowedMemberIdentityIds: MemberIdentityId[]; advancedCustomfield: AdvancedCustomField | null; boundType: CustomFieldBoundType; categoryIds: CustomFieldCategoryId[]; choices: CustomFieldChoiceSchema[]; description: string; displayed: boolean; externalUrl?: string; isLinkLocked?: boolean; isLocked: boolean; isSingleSelection?: boolean; locker: UserSnippet | null; name: string; pos: number; setting?: CustomFieldRelevantSetting; type: CustomFieldType; payload?: any; } export interface NormalCustomFieldLinkSchema extends CustomFieldLinkBaseSchema { type: Exclude; } export interface CommonGroupCustomFieldLinkSchema extends CustomFieldLinkBaseSchema { type: 'commongroup'; subtype: CustomFieldSubtype; } export declare type CustomFieldLinkSchema = NormalCustomFieldLinkSchema | CommonGroupCustomFieldLinkSchema;