import { NameNode } from '../parser/parseNodes'; import { Declaration } from './declaration'; import { Type } from './types'; export declare const enum SymbolFlags { None = 0, InitiallyUnbound = 1, ExternallyHidden = 2, ClassMember = 4, InstanceMember = 8, SlotsMember = 16, PrivateMember = 32, IgnoredForProtocolMatch = 64, ClassVar = 128, InDunderAll = 256, PrivatePyTypedImport = 512, InitVar = 1024, NamedTupleMember = 2048, IgnoredForOverrideChecks = 4096, FinalVarInClassBody = 8192 } export declare const indeterminateSymbolId = 0; export interface SynthesizedTypeInfo { type: Type; node?: NameNode; } export declare class Symbol { private _declarations?; private _flags; readonly id: number; private _synthesizedTypeInfo?; private _typingSymbolAlias?; constructor(flags: SymbolFlags); static createWithType(flags: SymbolFlags, type: Type, node?: NameNode): Symbol; isInitiallyUnbound(): boolean; setIsExternallyHidden(): void; isExternallyHidden(): boolean; setIsIgnoredForProtocolMatch(): void; isIgnoredForProtocolMatch(): boolean; setIsClassMember(): void; isClassMember(): boolean; setIsInstanceMember(): void; isInstanceMember(): boolean; setIsSlotsMember(): void; isSlotsMember(): boolean; setIsClassVar(): void; isClassVar(): boolean; setIsFinalVarInClassBody(): void; isFinalVarInClassBody(): boolean; setIsInitVar(): void; isInitVar(): boolean; setIsInDunderAll(): void; isInDunderAll(): boolean; setIsPrivateMember(): void; isPrivateMember(): boolean; setPrivatePyTypedImport(): void; isPrivatePyTypedImport(): boolean; isNamedTupleMemberMember(): boolean; isIgnoredForOverrideChecks(): boolean; setTypingSymbolAlias(aliasedName: string): void; getTypingSymbolAlias(): string | undefined; addDeclaration(declaration: Declaration): void; hasDeclarations(): boolean; getDeclarations(): Declaration[]; hasTypedDeclarations(): boolean; getTypedDeclarations(): Declaration[]; getSynthesizedType(): SynthesizedTypeInfo | undefined; } export type SymbolTable = Map;