@curvenote/cli
Version:
CLI Client library for Curvenote
90 lines • 3.88 kB
TypeScript
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