alinea
Version:
Headless git-based CMS
36 lines (35 loc) • 1.52 kB
TypeScript
import type { ExprInternal } from './Expr.js';
import type { FieldInternal } from './Field.js';
import type { RootInternal } from './Root.js';
import type { TypeInternal } from './Type.js';
import type { WorkspaceInternal } from './Workspace.js';
export declare const internalRoot: unique symbol;
export type HasRoot = {
readonly [internalRoot]: RootInternal;
};
export declare const hasRoot: (obj: object) => obj is HasRoot;
export declare const getRoot: (obj: HasRoot) => RootInternal;
export declare const internalType: unique symbol;
export declare class HasType {
get [internalType](): TypeInternal;
}
export declare const hasType: (obj: object) => obj is HasType;
export declare const getType: (obj: HasType) => TypeInternal;
export declare const internalField: unique symbol;
export type HasField = {
readonly [internalField]: FieldInternal;
};
export declare const hasField: (obj: object) => obj is HasField;
export declare const getField: (obj: HasField) => FieldInternal;
export declare const internalWorkspace: unique symbol;
export type HasWorkspace = {
[internalWorkspace]: WorkspaceInternal;
};
export declare const hasWorkspace: (obj: object) => obj is HasWorkspace;
export declare const getWorkspace: (obj: HasWorkspace) => WorkspaceInternal;
export declare const internalExpr: unique symbol;
export type HasExpr = {
readonly [internalExpr]: ExprInternal;
};
export declare const hasExpr: (obj: object) => obj is HasExpr;
export declare const getExpr: (obj: HasExpr) => ExprInternal;