import { Location, Range, SymbolInformation } from "vscode-languageserver/node";
export declare type DefinitionLocations = Range | Array<string | Range>;
declare type SymbolLocation = number | Range | [string, Range];
declare type PositionJSON = [number, number];
declare type RangeJSON = [PositionJSON, PositionJSON];
declare type DefinitionLocationsJSON = RangeJSON | Array<string | RangeJSON>;
declare type SymbolLocationJSON = number | RangeJSON | [string, RangeJSON];
export declare type SystemVerilogSymbolJSON = [string, DefinitionLocationsJSON, SymbolLocationJSON, string[], string[]];
export declare class SystemVerilogSymbol {
    name: string;
    defLocations: DefinitionLocations;
    symLocation: SymbolLocation;
    containers: string[];
    type: string[];
    constructor(name: string, defLocations: DefinitionLocations, symLocation: SymbolLocation, containers: string[], type: string[]);
    private static _toRangeJSON;
    private static _isRangeJSON;
    private static _toRange;
    private static _defLocationsToJSON;
    private static _symLocationToJSON;
    toJSON(): SystemVerilogSymbolJSON;
    static fromJSON(uri: string, jsonSymbol: SystemVerilogSymbolJSON): SystemVerilogSymbol;
    getSymbolLocation(uri: string): Location;
    toSymbolInformation(uri: string): SymbolInformation;
    overwrite(symbol: SystemVerilogSymbol): void;
    getDefinition(uri: string): string;
    static getDefinitions(uri: string, symbols: SystemVerilogSymbol[]): string[];
    getSymbolDocumentPath(uri: string): string;
}
export {};
