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 = Record> { modelKind: string; session: ISession; id: ID; $data?: DTO; $fromDTO: (id: ID, json: Record) => 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; } export declare class MyUser extends BaseTransfer { constructor(session: ISession); modelKind: string; $fromDTO: typeof myUserFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload; } export declare class User extends BaseTransfer { modelKind: string; $fromDTO: typeof userFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload; $selector: typeof selectors.selectUser; } export declare class Team extends BaseTransfer { modelKind: string; $fromDTO: typeof teamFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload; $selector: typeof selectors.selectTeam; } export declare class Project extends BaseTransfer { modelKind: string; $fromDTO: typeof projectFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload; $selector: typeof selectors.selectProject; } export declare class RemoteSiteConfig extends BaseTransfer { modelKind: string; $fromDTO: typeof siteConfigFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload; $selector: typeof selectors.selectSiteConfig; } export declare class Block extends BaseTransfer { modelKind: string; $fromDTO: typeof blockFromDTO; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload; $selector: typeof selectors.selectBlock; } export type VersionQueryOpts = { format?: FormatTypes; }; export declare class Version extends BaseTransfer { modelKind: string; $fromDTO: (versionId: VersionId, json: Record) => T; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload; $selector: typeof selectors.selectVersion; } export declare class Template extends BaseTransfer { modelKind: string; $fromDTO: (id: string, json: Record) => TemplateSpec & { id: string; }; $createUrl: () => string; $receive: import("@reduxjs/toolkit").ActionCreatorWithPayload; $selector: typeof selectors.selectTemplate; } export {}; //# sourceMappingURL=models.d.ts.map