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;
}