UNPKG

alinea

Version:
102 lines (101 loc) 3.3 kB
import type { StoredRow } from '../Infer.js'; import type { ImagePreviewDetails } from '../media/CreatePreview.js'; import { Type } from '../Type.js'; import type { Mutation } from './Mutation.js'; import type { WriteableGraph } from './WriteableGraph.js'; type Awaitable<T> = T | Promise<T>; type Task = (graph: WriteableGraph) => Awaitable<Array<Mutation>>; export declare class Operation { task: Task; constructor(task: Task); } export interface CreateQuery<Fields> { type: Type<Fields>; id?: string; workspace?: string; root?: string; parentId?: string | null; locale?: string | null; status?: 'draft' | 'published' | 'archived'; set: Partial<StoredRow<Fields>>; insertOrder?: 'first' | 'last'; overwrite?: boolean; } export declare class CreateOp<Fields> extends Operation { id: string; constructor(op: CreateQuery<Fields>); } export declare class DeleteOp extends Operation { protected entryIds: Array<string>; constructor(entryIds: Array<string>); } export interface DiscardQuery { id: string; locale?: string | null; status: 'draft' | 'archived' | 'published'; } export declare class DiscardOp extends Operation { constructor(query: DiscardQuery); } export interface UpdateQuery<Fields> { type?: Type<Fields>; id: string; set: Partial<StoredRow<Fields>>; status?: 'draft' | 'published' | 'archived'; locale?: string | null; } export declare class UpdateOperation<Definition> extends Operation { constructor(query: UpdateQuery<Definition>); } export interface MoveQuery { id: string; after?: string | null; toParent?: string; toRoot?: string; } export declare class MoveOperation extends Operation { constructor(query: MoveQuery); } export interface PublishQuery { id: string; status: 'draft' | 'archived'; locale?: string | null; } export declare class PublishOperation extends Operation { constructor(query: PublishQuery); } export interface UnpublishQuery { id: string; locale?: string | null; } export declare class UnpublishOperation extends Operation { constructor(query: UnpublishQuery); } export interface ArchiveQuery { id: string; locale?: string | null; } export declare class ArchiveOperation extends Operation { constructor(query: ArchiveQuery); } export interface UploadQuery { file: File | [string, Uint8Array]; workspace?: string; root?: string; parentId?: string | null; createPreview?(blob: Blob): Promise<ImagePreviewDetails>; replaceId?: string; } export declare class UploadOperation extends Operation { id: string; constructor(query: UploadQuery); } export declare function update<Definition>(query: UpdateQuery<Definition>): UpdateOperation<Definition>; export declare function create<Definition>(query: CreateQuery<Definition>): CreateOp<Definition>; export declare function remove(...entryIds: Array<string>): DeleteOp; export declare function discard(query: DiscardQuery): DiscardOp; export declare function upload(query: UploadQuery): UploadOperation; export declare function move(query: MoveQuery): MoveOperation; export declare function publish(query: PublishQuery): PublishOperation; export declare function archive(query: ArchiveQuery): ArchiveOperation; export {};