import { TSESTree } from '@typescript-eslint/experimental-utils';
import * as ts from 'typescript';
export declare function isTypeArrayTypeOrUnionOfArrayTypes(type: ts.Type, checker: ts.TypeChecker): boolean;
export declare function containsAllTypesByName(type: ts.Type, allowAny: boolean, allowedNames: Set<string>): boolean;
export declare function getTypeName(typeChecker: ts.TypeChecker, type: ts.Type): string;
export declare function getConstrainedTypeAtLocation(checker: ts.TypeChecker, node: ts.Node): ts.Type;
export declare function isNullableType(type: ts.Type, { isReceiver, allowUndefined }?: {
    isReceiver?: boolean;
    allowUndefined?: boolean;
}): boolean;
export declare function getDeclaration(checker: ts.TypeChecker, node: ts.Expression): ts.Declaration | null;
export declare function getTypeFlags(type: ts.Type): ts.TypeFlags;
export declare function isTypeFlagSet(type: ts.Type, flagsToCheck: ts.TypeFlags, isReceiver?: boolean): boolean;
export declare function typeIsOrHasBaseType(type: ts.Type, parentType: ts.Type): boolean;
export declare function getSourceFileOfNode(node: ts.Node): ts.SourceFile;
export declare function getTokenAtPosition(sourceFile: ts.SourceFile, position: number): ts.Node;
export interface EqualsKind {
    isPositive: boolean;
    isStrict: boolean;
}
export declare function getEqualsKind(operator: string): EqualsKind | undefined;
export declare function getTypeArguments(type: ts.TypeReference, checker: ts.TypeChecker): readonly ts.Type[];
export declare function isTypeUnknownType(type: ts.Type): boolean;
export declare function isTypeAnyType(type: ts.Type): boolean;
export declare function isTypeAnyArrayType(type: ts.Type, checker: ts.TypeChecker): boolean;
export declare function isTypeUnknownArrayType(type: ts.Type, checker: ts.TypeChecker): boolean;
export declare const enum AnyType {
    Any = 0,
    AnyArray = 1,
    Safe = 2
}
export declare function isAnyOrAnyArrayTypeDiscriminated(node: ts.Node, checker: ts.TypeChecker): AnyType;
export declare function isUnsafeAssignment(type: ts.Type, receiver: ts.Type, checker: ts.TypeChecker, senderNode: TSESTree.Node | null): false | {
    sender: ts.Type;
    receiver: ts.Type;
};
export declare function getContextualType(checker: ts.TypeChecker, node: ts.Expression): ts.Type | undefined;
