import { SourceReference } from "./source-reference"; import { VNode, VNodeRepresentationSource } from "./vnode"; export declare const Token: unique symbol; export declare const IsTokenOptions: unique symbol; export declare const Scalar: unique symbol; /** * @experimental */ export declare const SetTokenSource: unique symbol; /** * @experimental */ export declare const TokenAncestor: unique symbol; /** * @experimental */ export declare const TokenConstructor: unique symbol; export declare type TokenOptionsRecord = Record; export interface TokenOptions { [IsTokenOptions]?(value: unknown): boolean; [SetTokenSource]?: TSetTokenSource; [TokenAncestor]?: boolean; } export interface IsTokenSourceVNodeFn { (value: unknown): value is T; } export interface IsTokenOptionsVNodeFn { (value: unknown): value is O; } export interface IsTokenVNodeFn { (value: unknown): value is TokenVNode; } export interface IsTokenVNodeFnFn = Partial> { (value: unknown): value is TokenVNodeFn; } export interface AssertTokenVNodeFn { (value: unknown): asserts value is TokenVNode; } export interface AssertTokenVNodeFnFn = Partial> { (value: unknown): value is TokenVNodeFn; } export interface TokenVNodeBase = Partial> extends VNode { options: Initial & Partial; source: O extends { [SetTokenSource]: infer TSet; } ? TSet : T; reference: typeof Token; isTokenSource: IsTokenSourceVNodeFn; isTokenOptions: IsTokenOptionsVNodeFn; is: IsTokenVNodeFn; isFn: IsTokenVNodeFnFn; assert: AssertTokenVNodeFn; assertFn: AssertTokenVNodeFnFn; [TokenAncestor]?: TokenVNodeFn; } export interface TokenVNode extends TokenVNodeBase { options: O & TokenOptions & TokenOptionsRecord; } export declare type TokenRequiredOptions = Omit & Omit, keyof TokenOptions>; export declare type TokenResolvedOptions> = Partial> & Omit & PassedOptions; export interface TokenVNodeFn> extends TokenVNodeBase { & TokenOptions>(options: PassedOptions, child?: VNode): TokenVNodeFn, TokenResolvedOptions>; (): TokenVNodeFn, O & Partial>; } export declare function createToken(source: T): TokenVNodeFn; export declare function createToken>(source: T, options?: Initial, ...children: VNodeRepresentationSource[]): TokenVNodeFn; export declare function isTokenVNode(value: unknown, isTokenSource?: (value: unknown) => value is T, isTokenOptions?: (value: unknown) => value is O): value is TokenVNode; export declare function isTokenVNodeFn(value: unknown, isTokenSource?: (value: unknown) => value is T, isTokenOptions?: (value: unknown) => value is O): value is TokenVNodeFn; export declare function assertTokenVNode(value: unknown, isTokenSource?: (value: unknown) => value is T, isTokenOptions?: (value: unknown) => value is O): asserts value is TokenVNode; export declare function assertTokenVNodeFn = Partial>(value: unknown, isTokenSource?: (value: unknown) => value is T, isTokenOptions?: (value: unknown) => value is O | Initial): asserts value is TokenVNodeFn; //# sourceMappingURL=token.d.ts.map