import { IContentMeta } from './ContentMeta'; export interface IPageResponse { responseCount: number; nextCursor?: string; next?: () => Promise>; } export interface FilterByResponse { responses: ContentItemResponse[]; page: IPageResponse; } export interface ContentItemResponse { content: Body & IContentMeta; linkedContent?: Array & IContentMeta>; } export interface FilterByComponent { value: any; } export interface IFilterBy extends FilterByComponent { path: string; } export interface IFilterByLookUp extends FilterByComponent { lookupBy: string; value: string; } export type IOrder = 'DESC' | 'ASC'; export interface ISortBy { key: string; order: IOrder; } export interface RequestOptions { depth?: 'all' | 'root'; format?: 'inlined' | 'linked'; locale?: string; } export interface IPage { size: number; cursor?: string; } export interface FilterByRequest { filterBy: Array; sortBy?: ISortBy; page?: Partial>; parameters?: RequestOptions; }