import { Hashable } from "@fncts/base/data/Hashable"; import { Equatable } from "@fncts/base/data/Equatable"; import { Tag } from "@fncts/base/data/Tag/definition"; import { ParseError } from "@fncts/schema/ParseError"; import { Vector } from "@fncts/base/collection/immutable/Vector"; import { AST } from "@fncts/schema/AST"; import { Eq } from "@fncts/base/data/Eq/definition"; import type { Validation } from "@fncts/base/data/Branded"; export declare const ASTAnnotationVariance: unique symbol; export type ASTAnnotationVariance = typeof ASTAnnotationVariance; export declare const ASTAnnotationTypeId: unique symbol; export type ASTAnnotationTypeId = typeof ASTAnnotationTypeId; /** * @tsplus type fncts.schema.ASTAnnotation * @tsplus companion fncts.schema.ASTAnnotationOps */ export declare class ASTAnnotation implements Hashable, Equatable { readonly tag: Tag; readonly identifier: string; readonly combine: (v1: V, v2: V) => V; readonly [ASTAnnotationTypeId]: ASTAnnotationTypeId; [ASTAnnotationVariance]: { readonly _V: (_: never) => V; }; constructor(tag: Tag, identifier: string, combine: (v1: V, v2: V) => V); get [Symbol.hash](): number; [Symbol.equals](that: unknown): boolean; } export declare function isASTAnnotation(u: unknown): u is ASTAnnotation; export declare const TitleTag: import("@fncts/base/data/Tag").Tag; /** * @tsplus static fncts.schema.ASTAnnotationOps Title * @tsplus location "@fncts/schema/ASTAnnotation" */ export declare const Title: ASTAnnotation; export declare const IdentifierTag: import("@fncts/base/data/Tag").Tag; /** * @tsplus static fncts.schema.ASTAnnotationOps Identifier * @tsplus location "@fncts/schema/ASTAnnotation" */ export declare const Identifier: ASTAnnotation; export declare const DescriptionTag: import("@fncts/base/data/Tag").Tag; /** * @tsplus static fncts.schema.ASTAnnotationOps Description * @tsplus location "@fncts/schema/ASTAnnotation" */ export declare const Description: ASTAnnotation; export declare const MessageTag: import("@fncts/base/data/Tag").Tag<(error: ParseError) => string, (error: ParseError) => string>; /** * @tsplus static fncts.schema.ASTAnnotationOps Message * @tsplus location "@fncts/schema/ASTAnnotation" */ export declare const Message: ASTAnnotation<(error: ParseError) => string>; export declare const BrandTag: import("@fncts/base/data/Tag").Tag>, import("@fncts/base/collection/immutable/Vector").Vector>>; /** * @tsplus static fncts.schema.ASTAnnotationOps Brand * @tsplus location "@fncts/schema/ASTAnnotation" */ export declare const Brand: ASTAnnotation>>; export declare const OptionalTag: import("@fncts/base/data/Tag").Tag; /** * @tsplus static fncts.schema.ASTAnnotationOps Optional * @tsplus location "@fncts/schema/ASTAnnotation" */ export declare const Optional: ASTAnnotation; export declare const ParseOptionalTag: import("@fncts/base/data/Tag").Tag; /** * @tsplus static fncts.schema.ASTAnnotationOps ParseOptional * @tsplus location "@fncts/schema/ASTAnnotation" */ export declare const ParseOptional: ASTAnnotation; export declare const SurrogateTag: import("@fncts/base/data/Tag").Tag; /** * @tsplus static fncts.schema.ASTAnnotationOps Surrogate * @tsplus location "@fncts/schema/ASTAnnotation" */ export declare const Surrogate: ASTAnnotation; export type Hook = (...typeParameters: ReadonlyArray) => A; export declare function hook(handler: (...typeParameters: ReadonlyArray) => any): Hook; export declare const ParserHookTag: import("@fncts/base/data/Tag").Tag, Hook>; /** * @tsplus static fncts.schema.ASTAnnotationOps ParserHook * @tsplus location "@fncts/schema/ASTAnnotation" */ export declare const ParserHook: ASTAnnotation>; export declare const GenHookTag: import("@fncts/base/data/Tag").Tag, Hook>; /** * @tsplus static fncts.schema.ASTAnnotationOps GenHook * @tsplus location "@fncts/schema/ASTAnnotation" */ export declare const GenHook: ASTAnnotation>; export declare const EqHookTag: import("@fncts/base/data/Tag").Tag>, Hook>>; /** * @tsplus static fncts.schema.ASTAnnotationOps EqHook * @tsplus location "@fncts/schema/ASTAnnotation" */ export declare const EqHook: ASTAnnotation>>;