import { Document } from 'prismic-javascript/d.ts/documents';
/**
 * Shared fields for resources
 */
export interface Resource {
  title: string;
  id: string;
  description: string;
  publishDate: string | null;
  updatedDate: string | null;
  metaImage: string;
  heroImage: string;
  type: ResourceType;
  authors: ResourceAuthor[];
  tags: string[];
  source: ResourceSource;
}
export interface PrismicResource extends Resource {
  source: ResourceSource.Prismic;
  doc: PrismicDoc;
}
export interface ResourceAuthor {
  name: string;
  title: string;
  link: string;
  avatar: string;
}
export declare enum ResourceType {
  Article = "Article",
  Blog = "Blog",
  Book = "Book",
  CaseStudy = "Case Study",
  CustomerInterview = "Customer Interview",
  Course = "Course",
  Learning = "Learning",
  Doc = "Doc",
  Guide = "Guide",
  Podcast = "Podcast",
  Tutorial = "Tutorial",
  Video = "Video",
  Whitepaper = "Whitepaper",
  Webinar = "Webinar"
}
export interface Article extends PrismicResource {
  type: ResourceType.Article;
}
export interface Book extends PrismicResource {
  type: ResourceType.Book;
}
export interface Learning extends PrismicResource {
  type: ResourceType.Learning;
}
export interface CaseStudy extends PrismicResource {
  type: ResourceType.CaseStudy;
}
export interface Course extends PrismicResource {
  type: ResourceType.Course;
}
export interface Guide extends PrismicResource {
  type: ResourceType.Guide;
}
export interface Tutorial extends PrismicResource {
  type: ResourceType.Tutorial;
}
export interface Video extends PrismicResource {
  type: ResourceType.Video;
}
export interface Whitepaper extends PrismicResource {
  type: ResourceType.Whitepaper;
}
export interface Webinar extends PrismicResource {
  type: ResourceType.Webinar;
  when: string;
}
export interface Doc extends PrismicResource {
  type: ResourceType.Doc;
}
export interface Blog extends PrismicResource {
  type: ResourceType.Blog;
}
export interface LandingData {
  feature: Resource | null;
  latestAnnouncements: Resource[];
  midFeatures: Resource[];
  bottomFeatures: Resource[];
  trenchFeatures: Resource[];
  chasmFeatures: Resource[];
}
export declare enum ResourceSource {
  Prismic = "prismic"
}
/**
 * Prismic Types
 */
export interface PrismicSlice {
  slice_type: string;
  slice_label: string;
  items: any[];
  primary: {
    content: any;
    [key: string]: any;
  };
}
export interface PrismicDoc extends Document {
}
