typir
Version:
General purpose type checking library
31 lines • 2.26 kB
TypeScript
/******************************************************************************
* Copyright 2025 TypeFox GmbH
* This program and the accompanying materials are made available under the
* terms of the MIT License, which is available in the project root.
******************************************************************************/
import { TypeGraphListener } from '../../graph/type-graph.js';
import { Type, TypeStateListener } from '../../graph/type-node.js';
import { TypeInitializer } from '../../initialization/type-initializer.js';
import { TypirSpecifics } from '../../typir.js';
import { InferenceRuleWithOptions, ValidationRuleWithOptions } from '../../utils/utils-definitions.js';
import { CustomTypeProperties } from './custom-definitions.js';
import { CreateCustomTypeDetails, CustomKind } from './custom-kind.js';
import { CustomType } from './custom-type.js';
export declare class CustomTypeInitializer<Properties extends CustomTypeProperties, Specifics extends TypirSpecifics> extends TypeInitializer<CustomType<Properties, Specifics>, Specifics> implements TypeStateListener, TypeGraphListener {
protected readonly kind: CustomKind<Properties, Specifics>;
protected readonly typeDetails: CreateCustomTypeDetails<Properties, Specifics>;
protected readonly initialCustomType: CustomType<Properties, Specifics>;
protected inferenceRules: Array<InferenceRuleWithOptions<Specifics>>;
protected validationRules: Array<ValidationRuleWithOptions<Specifics>>;
constructor(kind: CustomKind<Properties, Specifics>, typeDetails: CreateCustomTypeDetails<Properties, Specifics>);
getTypeInitial(): CustomType<Properties, Specifics>;
onSwitchedToIdentifiable(customType: Type): void;
onSwitchedToCompleted(_customType: Type): void;
onSwitchedToInvalid(_customType: Type): void;
protected handleEdgeRelationshipsOfNewType(): void;
onAddedType(newOtherType: Type, _key: string): void;
protected createRules(customType: CustomType<Properties, Specifics>): void;
protected registerRules(customType: CustomType<Properties, Specifics> | undefined): void;
protected deregisterRules(customType: CustomType<Properties, Specifics> | undefined): void;
}
//# sourceMappingURL=custom-initializer.d.ts.map