import { Declaration, Node, SourceFile, Symbol as Sym, Type, TypeChecker } from 'typescript'; /** * Generate a stable hash from a string * * @param str string to generate a hash from * @public */ export declare function generateHash(str: string): string; /** * Entities that we can generate unique and stable IDs for */ export declare type IDableEntity = Sym | Node | Type | Declaration | SourceFile; export declare type NewEntityGenerateIdResult = ['ok', string]; export declare type NewEntityWithRelatedGenerateIdResult = ['ok-related', string, IDableEntity[]]; export declare type GenerateIdResult = NewEntityGenerateIdResult | NewEntityWithRelatedGenerateIdResult; /** * A utility for generating unique but stable ids for TypeScript compiler API entities */ export interface IdGenerator { /** * Generate an id for an entity * @param thing Entity to generate an Id for */ (thing: IDableEntity): GenerateIdResult; } /** * Create an ID generator, using information from the provided type-checker * * @param checker type-checker */ export declare function createIdGenerator(checker: TypeChecker): IdGenerator; //# sourceMappingURL=generate-id.d.ts.map