import { DiagnosticAddendum } from '../common/diagnostic'; import { ClassNode, DictionaryNode, ExpressionNode, IndexNode } from '../parser/parseNodes'; import { ConstraintTracker } from './constraintTracker'; import { Arg, AssignTypeFlags, EvaluatorUsage, TypeEvaluator, TypeResult, TypeResultWithNode } from './typeEvaluatorTypes'; import { ClassType, Type, TypedDictEntries, TypedDictEntry } from './types'; export declare function createTypedDictType(evaluator: TypeEvaluator, errorNode: ExpressionNode, typedDictClass: ClassType, argList: Arg[]): ClassType; export declare function createTypedDictTypeInlined(evaluator: TypeEvaluator, dictNode: DictionaryNode, typedDictClass: ClassType): ClassType; export declare function synthesizeTypedDictClassMethods(evaluator: TypeEvaluator, node: ClassNode | ExpressionNode, classType: ClassType): void; export declare function getTypedDictMembersForClass(evaluator: TypeEvaluator, classType: ClassType, allowNarrowed?: boolean): TypedDictEntries; export declare function getTypedDictMappingEquivalent(evaluator: TypeEvaluator, classType: ClassType): Type | undefined; export declare function getTypedDictDictEquivalent(evaluator: TypeEvaluator, classType: ClassType, recursionCount?: number): Type | undefined; export declare function getEffectiveExtraItemsEntryType(evaluator: TypeEvaluator, classType: ClassType): TypedDictEntry; export declare function assignTypedDictToTypedDict(evaluator: TypeEvaluator, destType: ClassType, srcType: ClassType, diag: DiagnosticAddendum | undefined, constraints: ConstraintTracker | undefined, flags: AssignTypeFlags, recursionCount?: number): boolean; export declare function assignToTypedDict(evaluator: TypeEvaluator, classType: ClassType, keyTypes: TypeResultWithNode[], valueTypes: TypeResultWithNode[], diagAddendum?: DiagnosticAddendum): ClassType | undefined; export declare function getTypeOfIndexedTypedDict(evaluator: TypeEvaluator, node: IndexNode, baseType: ClassType, usage: EvaluatorUsage): TypeResult | undefined; export declare function narrowForKeyAssignment(classType: ClassType, key: string): ClassType;