@foxpage/foxpage-types
Version:
foxpage sdk types
32 lines (31 loc) • 935 B
TypeScript
import { ContentDetail } from '../../content';
import { ManagerBase } from '..';
export type MaterialType = 'data.material';
export type MaterialProps<T = Record<string, any>> = T;
export interface MaterialItem<P = any> {
/**
* material name
*
* @type {string}
*/
name: string;
/**
* material type
*
* @type {MaterialType}
*/
type: MaterialType;
/**
* material props
*/
props: P;
}
export interface Material extends ContentDetail<MaterialItem> {
}
export interface MaterialManager<T = Material> extends ManagerBase<T> {
addMaterial(material: Material): void;
removeMaterials(materialIds: string[]): void;
getMaterial(materialId: string, opt: Record<string, any>): Promise<Material | undefined>;
getMaterials(materialIds: string[], opt: Record<string, any>): Promise<Material[]>;
freshMaterials(materialIds: string[]): Promise<Material[]>;
}