UNPKG

@curvenote/cli

Version:
90 lines 3.88 kB
import type { AnyAction } from '@reduxjs/toolkit'; import type { MyUser as MyUserDTO, User as UserDTO, Team as TeamDTO, Project as ProjectDTO, SiteConfigDTO, Block as BlockDTO, ALL_BLOCKS, ProjectId, BlockId, VersionId, FormatTypes, TemplateSpec } from '@curvenote/blocks'; import { projectFromDTO, blockFromDTO, userFromDTO, myUserFromDTO, teamFromDTO, siteConfigFromDTO } from '@curvenote/blocks'; import type { ISession } from './session/types.js'; import type { RootState } from './store/index.js'; import { selectors } from './store/index.js'; /** Base class for API models */ declare class BaseTransfer<ID, DTO extends { id: ID; }, GetOptions extends Record<string, string> = Record<string, never>> { modelKind: string; session: ISession; id: ID; $data?: DTO; $fromDTO: (id: ID, json: Record<string, any>) => DTO; $createUrl: () => string; $selector?: (state: RootState, id: ID) => DTO; $receive?: (dto: DTO) => AnyAction; constructor(session: ISession, id: ID); get data(): DTO; set data(data: DTO); get(query?: GetOptions): Promise<this>; } export declare class MyUser extends BaseTransfer<string, MyUserDTO> { constructor(session: ISession); modelKind: string; $fromDTO: typeof myUserFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserDTO, "usersApi/receive">; } export declare class User extends BaseTransfer<string, UserDTO> { modelKind: string; $fromDTO: typeof userFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserDTO, "usersApi/receive">; $selector: typeof selectors.selectUser; } export declare class Team extends BaseTransfer<string, TeamDTO> { modelKind: string; $fromDTO: typeof teamFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload<TeamDTO, "teamsApi/receive">; $selector: typeof selectors.selectTeam; } export declare class Project extends BaseTransfer<ProjectId, ProjectDTO> { modelKind: string; $fromDTO: typeof projectFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload<ProjectDTO, "projectsApi/receive">; $selector: typeof selectors.selectProject; } export declare class RemoteSiteConfig extends BaseTransfer<ProjectId, SiteConfigDTO> { modelKind: string; $fromDTO: typeof siteConfigFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload<SiteConfigDTO, "siteconfigsApi/receive">; $selector: typeof selectors.selectSiteConfig; } export declare class Block extends BaseTransfer<BlockId, BlockDTO> { modelKind: string; $fromDTO: typeof blockFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload<BlockDTO, "blocksApi/receive">; $selector: typeof selectors.selectBlock; } export type VersionQueryOpts = { format?: FormatTypes; }; export declare class Version<T extends ALL_BLOCKS = ALL_BLOCKS> extends BaseTransfer<VersionId, T, VersionQueryOpts> { modelKind: string; $fromDTO: (versionId: VersionId, json: Record<string, any>) => T; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload<ALL_BLOCKS, "versionsApi/receive">; $selector: typeof selectors.selectVersion; } export declare class Template extends BaseTransfer<string, TemplateSpec & { id: string; }> { modelKind: string; $fromDTO: (id: string, json: Record<string, any>) => TemplateSpec & { id: string; }; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload<TemplateSpec & { id: string; }, "templatesApi/receive">; $selector: typeof selectors.selectTemplate; } export {}; //# sourceMappingURL=models.d.ts.map