import { Dayjs } from 'dayjs'; import { EditingRestrictions } from './EditingRestrictions'; export interface Contract { id: ContractId; contentPartnerName: string; contractDocument?: string; contractDates?: ContractDates; contractIsRolling?: boolean; daysBeforeTerminationWarning?: number; yearsForMaximumLicense?: number | null; daysForSellOffPeriod?: number; royaltySplit?: ContractRoyaltySplit; minimumPriceDescription?: string; remittanceCurrency?: string; restrictions?: ContractRestrictions; costs?: ContractCosts; } export interface ContractId { value: string; } export interface ContractDates { start?: Dayjs; end?: Dayjs; } export interface ContractRoyaltySplit { streaming?: number; download?: number; } export interface ContractRestrictions { video?: string; additionalTerritoryInfo?: string; territoryRestrictions?: TerritoryRestrictions; licensing?: string; editingRestrictions?: EditingRestrictions; aiRestrictions?: AiRestrictions; marketing?: string; companies?: string; payout?: string; other?: string; } export interface TerritoryRestrictions { restrictionsType?: TerritoryRestrictionsType; territories?: Territory[]; } export declare enum TerritoryRestrictionsType { RESTRICTED = "RESTRICTED", NO_RESTRICTIONS = "NO_RESTRICTIONS" } export interface AiRestrictions { internalUse?: AiPermissionsType; llmUse?: AiPermissionsType; info?: string; } export declare enum AiPermissionsType { ALLOWED = "ALLOWED", ALLOWED_WITH_RESTRICTIONS = "ALLOWED_WITH_RESTRICTIONS", NOT_ALLOWED = "NOT_ALLOWED" } export interface Territory { code: string; label: string; } export interface ContractCosts { minimumGuarantee: number[]; upfrontLicense?: number; technicalFee?: number; recoupable?: boolean; }