export interface Redirect { id: string; from: string; to: Link; created: Date; modified: Date; startDate: Date; endDate: Date | null; hasDynamicValueTags: boolean; isPermanent: boolean; toComposedUrl: string; description?: string; } export interface RedirectInfo { pageId?: string; pageTitle?: string; url: string; displayUrl: string; } interface Link { text?: string; noFollow: boolean; targetIsBlank: boolean; url?: string; page?: string; } export interface ApiResponse { $type: string; } export interface Page extends ApiResponse { id: string; title: string; path: string; name: string; itemName: string; parentId: string | null; isChild: boolean; allowNew: boolean; children: Page[]; } export interface VersionedPage extends Page { versions: Version[]; } export interface PublishedPage { pageId: string; publishedVersionId: string; } export type Folder = PublishedPage export interface Schema { properties: any; oneOf: SchemaItem[]; } export interface SchemaItem { type: string; title: string; properties: any; isSingleton?: boolean; preventDelete?: boolean; preventDepublish?: boolean; preventMove?: boolean; preventRename?: boolean; } export interface BaseCreatePagePayload { [key: string]: string; name: string; parentId: string; } export interface CreatePagePayload extends BaseCreatePagePayload { version: string; } export interface CreatePageFromCopyPayload extends BaseCreatePagePayload { sourceVersionId: string; } export interface PagePayload { page: Page; } export interface MovePagePayload extends PagePayload { newParentId: string; } export interface RenamePagePayload extends PagePayload { name: string; } export interface Version extends ApiResponse { id: string; name: string | null; metaTitle: string; metaDescription: string | null; isPublishedOrSchedule: boolean; metaFollow: boolean; metaIndex: boolean; showAsOneSection: boolean; showPostFix: boolean; created: string; modified: string; publishDate: string | null; depublishDate: string | null; page: Page; pageId: string; } export interface ScheduleTimeObject { hours: number; minutes: number; } export interface RecurringSchedule { id: string; cmsPageVersionId: string; recurrenceStartTime: ScheduleTimeObject; recurrenceEndTime: ScheduleTimeObject; selectedDay: string; } export interface Asset { $type: string; alt: string | null; blobstoreUrl: string; contentType: string; created: string; createdOn: string; height: number; id: string; imageUrl: string; isDeleted: boolean; modified: string; previewData: string; size: number; sourceId: string; title: string; width: number; } export interface DynamicValueTag { $type: string; created: string; default: string; description: string; hasDynamicValueTags: boolean; id: string; modified: string; text: string; } export {};