/// <reference path="./bridge.d.ts" />

    /** @namespace System */

    /**
     * @memberof System
     * @callback System.Func
     * @return  {T}
     */

declare namespace Kusto.Language {
    /** @namespace Kusto.Language */

    /**
     * Well known aggregates
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Aggregates
     */
    interface Aggregates {
    }
    interface AggregatesFunc extends Function {
        prototype: Aggregates;
        new (): Aggregates;
        Sum: Kusto.Language.Symbols.FunctionSymbol | null;
        SumIf: Kusto.Language.Symbols.FunctionSymbol | null;
        Cnt: Kusto.Language.Symbols.FunctionSymbol | null;
        Count: Kusto.Language.Symbols.FunctionSymbol | null;
        CountIf: Kusto.Language.Symbols.FunctionSymbol | null;
        DCount: Kusto.Language.Symbols.FunctionSymbol | null;
        DCountIf: Kusto.Language.Symbols.FunctionSymbol | null;
        TDigest: Kusto.Language.Symbols.FunctionSymbol | null;
        TDigestMerge: Kusto.Language.Symbols.FunctionSymbol | null;
        MergeTDigest: Kusto.Language.Symbols.FunctionSymbol | null;
        Hll: Kusto.Language.Symbols.FunctionSymbol | null;
        HllIf: Kusto.Language.Symbols.FunctionSymbol | null;
        HllMerge: Kusto.Language.Symbols.FunctionSymbol | null;
        Min: Kusto.Language.Symbols.FunctionSymbol | null;
        MinIf: Kusto.Language.Symbols.FunctionSymbol | null;
        Max: Kusto.Language.Symbols.FunctionSymbol | null;
        MaxIf: Kusto.Language.Symbols.FunctionSymbol | null;
        Avg: Kusto.Language.Symbols.FunctionSymbol | null;
        AvgIf: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeList_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeList: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeListIf: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeListWithNulls: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeSet_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeSet: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeSetIf: Kusto.Language.Symbols.FunctionSymbol | null;
        Passthrough: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeDictionary: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeBag: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeBagIf: Kusto.Language.Symbols.FunctionSymbol | null;
        BuildSchema: Kusto.Language.Symbols.FunctionSymbol | null;
        BinaryAllOr: Kusto.Language.Symbols.FunctionSymbol | null;
        BinaryAllAnd: Kusto.Language.Symbols.FunctionSymbol | null;
        BinaryAllXor: Kusto.Language.Symbols.FunctionSymbol | null;
        CountDistinct: Kusto.Language.Symbols.FunctionSymbol | null;
        CountDistinctIf: Kusto.Language.Symbols.FunctionSymbol | null;
        Percentile: Kusto.Language.Symbols.FunctionSymbol | null;
        Percentiles: Kusto.Language.Symbols.FunctionSymbol | null;
        PercentilesArray: Kusto.Language.Symbols.FunctionSymbol | null;
        PercentileW: Kusto.Language.Symbols.FunctionSymbol | null;
        PercentilesW: Kusto.Language.Symbols.FunctionSymbol | null;
        PercentilesWArray: Kusto.Language.Symbols.FunctionSymbol | null;
        Stdev: Kusto.Language.Symbols.FunctionSymbol | null;
        StdevIf: Kusto.Language.Symbols.FunctionSymbol | null;
        Stdevp: Kusto.Language.Symbols.FunctionSymbol | null;
        Variance: Kusto.Language.Symbols.FunctionSymbol | null;
        VarianceIf: Kusto.Language.Symbols.FunctionSymbol | null;
        Variancep: Kusto.Language.Symbols.FunctionSymbol | null;
        VariancepIf: Kusto.Language.Symbols.FunctionSymbol | null;
        Covariance: Kusto.Language.Symbols.FunctionSymbol | null;
        CovarianceIf: Kusto.Language.Symbols.FunctionSymbol | null;
        Covariancep: Kusto.Language.Symbols.FunctionSymbol | null;
        CovariancepIf: Kusto.Language.Symbols.FunctionSymbol | null;
        Any: Kusto.Language.Symbols.FunctionSymbol | null;
        TakeAny: Kusto.Language.Symbols.FunctionSymbol | null;
        AnyIf: Kusto.Language.Symbols.FunctionSymbol | null;
        TakeAnyIf: Kusto.Language.Symbols.FunctionSymbol | null;
        ArgMin: Kusto.Language.Symbols.FunctionSymbol | null;
        ArgMax: Kusto.Language.Symbols.FunctionSymbol | null;
        ArgMin_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        ArgMax_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.FunctionSymbol> | null;
        GetAnyResult(context: Kusto.Language.Symbols.CustomReturnTypeContext | null, unnamedExpressionPrefix: string | null): Kusto.Language.Symbols.TypeSymbol | null;
    }
    var Aggregates: AggregatesFunc;

    /**
     * A class full of helper API's used when building custom return types for functions.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.FunctionHelpers
     */
    interface FunctionHelpers {
    }
    interface FunctionHelpersFunc extends Function {
        prototype: FunctionHelpers;
        new (): FunctionHelpers;
        /**
         * The largest number of ocurrances for a repeatable parameter
         *
         * @static
         * @public
         * @memberof Kusto.Language.FunctionHelpers
         * @constant
         * @default 32767
         * @type number
         */
        MaxRepeat: number;
        MakePrefixedTuple(context: Kusto.Language.Symbols.CustomReturnTypeContext | null, parameterName: string | null, baseTuple: Kusto.Language.Symbols.TupleSymbol | null): Kusto.Language.Symbols.TupleSymbol | null;
        /**
         * Makes a column name by joining multiple parts using underscores.
         *
         * @static
         * @public
         * @this Kusto.Language.FunctionHelpers
         * @memberof Kusto.Language.FunctionHelpers
         * @param   {Array.<string>}    nameParts
         * @return  {string}
         */
        MakeColumnName(nameParts: string[] | null): string | null;
        /**
         * Adds the column referenced by the argument corresponding to the specified parameter to the list.
         *
         * @static
         * @public
         * @this Kusto.Language.FunctionHelpers
         * @memberof Kusto.Language.FunctionHelpers
         * @param   {System.Collections.Generic.List$1}                 columns          
         * @param   {Kusto.Language.Symbols.CustomReturnTypeContext}    context          
         * @param   {string}                                            parameterName
         * @return  {void}
         */
        AddReferencedColumn(columns: System.Collections.Generic.List$1<Kusto.Language.Symbols.ColumnSymbol> | null, context: Kusto.Language.Symbols.CustomReturnTypeContext | null, parameterName: string | null): void;
        /**
         * Adds the columns referenced by the arguments corresponding to the specified parameter to the list.
         *
         * @static
         * @public
         * @this Kusto.Language.FunctionHelpers
         * @memberof Kusto.Language.FunctionHelpers
         * @param   {System.Collections.Generic.List$1}                 columns          
         * @param   {Kusto.Language.Symbols.CustomReturnTypeContext}    context          
         * @param   {string}                                            parameterName
         * @return  {void}
         */
        AddReferencedColumns(columns: System.Collections.Generic.List$1<Kusto.Language.Symbols.ColumnSymbol> | null, context: Kusto.Language.Symbols.CustomReturnTypeContext | null, parameterName: string | null): void;
        /**
         * Gets the value of the constant expression.
         *
         * @static
         * @public
         * @this Kusto.Language.FunctionHelpers
         * @memberof Kusto.Language.FunctionHelpers
         * @param   {Kusto.Language.Syntax.Expression}    expr
         * @return  {string}
         */
        GetConstantValue(expr: Kusto.Language.Syntax.Expression | null): string | null;
        /**
         * Gets the values for all the constant expressions.
         *
         * @static
         * @public
         * @this Kusto.Language.FunctionHelpers
         * @memberof Kusto.Language.FunctionHelpers
         * @param   {Kusto.Language.Syntax.SyntaxList$1}            expressions
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetConstantValues(expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null): System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * Converts all non letters and digits into underscores.
         *
         * @static
         * @public
         * @this Kusto.Language.FunctionHelpers
         * @memberof Kusto.Language.FunctionHelpers
         * @param   {string}    text
         * @return  {string}
         */
        MakeValidNameFragment(text: string | null): string | null;
        /**
         * Gets the {@link }s referenced in the by clause of the summarize operator
         given the args to an invocation of an aggregate.
         *
         * @static
         * @public
         * @this Kusto.Language.FunctionHelpers
         * @memberof Kusto.Language.FunctionHelpers
         * @param   {System.Collections.Generic.IReadOnlyList$1}    args
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetSummarizeByColumns(args: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        /**
         * Get the list of {@link } referenced by the expressions in a list of expressions.
         *
         * @static
         * @private
         * @this Kusto.Language.FunctionHelpers
         * @memberof Kusto.Language.FunctionHelpers
         * @param   {Kusto.Language.Syntax.SyntaxList$1}            exprs
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        IsBoolean(expr: Kusto.Language.Syntax.Expression | null): boolean;
    }
    var FunctionHelpers: FunctionHelpersFunc;

    interface Functions {
    }
    interface FunctionsFunc extends Function {
        prototype: Functions;
        new (): Functions;
        ConvertAngle: Kusto.Language.Symbols.FunctionSymbol | null;
        ConvertEnergy: Kusto.Language.Symbols.FunctionSymbol | null;
        ConvertForce: Kusto.Language.Symbols.FunctionSymbol | null;
        ConvertLength: Kusto.Language.Symbols.FunctionSymbol | null;
        ConvertMass: Kusto.Language.Symbols.FunctionSymbol | null;
        ConvertSpeed: Kusto.Language.Symbols.FunctionSymbol | null;
        ConvertTemperature: Kusto.Language.Symbols.FunctionSymbol | null;
        ConvertVolume: Kusto.Language.Symbols.FunctionSymbol | null;
        Cluster: Kusto.Language.Symbols.FunctionSymbol | null;
        Database: Kusto.Language.Symbols.FunctionSymbol | null;
        Table: Kusto.Language.Symbols.FunctionSymbol | null;
        ExternalTable: Kusto.Language.Symbols.FunctionSymbol | null;
        MaterializedView: Kusto.Language.Symbols.FunctionSymbol | null;
        EntityGroup: Kusto.Language.Symbols.FunctionSymbol | null;
        StoredQueryResult: Kusto.Language.Symbols.FunctionSymbol | null;
        Graph: Kusto.Language.Symbols.FunctionSymbol | null;
        Strcat: Kusto.Language.Symbols.FunctionSymbol | null;
        StrcatArray: Kusto.Language.Symbols.FunctionSymbol | null;
        ArrayStrcat: Kusto.Language.Symbols.FunctionSymbol | null;
        StrcatDelim: Kusto.Language.Symbols.FunctionSymbol | null;
        Strcmp: Kusto.Language.Symbols.FunctionSymbol | null;
        Strrep: Kusto.Language.Symbols.FunctionSymbol | null;
        Strlen: Kusto.Language.Symbols.FunctionSymbol | null;
        StringSize: Kusto.Language.Symbols.FunctionSymbol | null;
        ToUpper: Kusto.Language.Symbols.FunctionSymbol | null;
        ToLower: Kusto.Language.Symbols.FunctionSymbol | null;
        ToUtf8_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        UnicodeCodepointsFromString: Kusto.Language.Symbols.FunctionSymbol | null;
        Substring: Kusto.Language.Symbols.FunctionSymbol | null;
        RegexQuote: Kusto.Language.Symbols.FunctionSymbol | null;
        IndexOf: Kusto.Language.Symbols.FunctionSymbol | null;
        IndexOfRegex: Kusto.Language.Symbols.FunctionSymbol | null;
        HasAnyIndex: Kusto.Language.Symbols.FunctionSymbol | null;
        Reverse: Kusto.Language.Symbols.FunctionSymbol | null;
        Split: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseCommandLine: Kusto.Language.Symbols.FunctionSymbol | null;
        Extract: Kusto.Language.Symbols.FunctionSymbol | null;
        ExtractAll_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        ExtractAll: Kusto.Language.Symbols.FunctionSymbol | null;
        ExtractJson_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        ExtractJson: Kusto.Language.Symbols.FunctionSymbol | null;
        Replace: Kusto.Language.Symbols.FunctionSymbol | null;
        ReplaceRegex: Kusto.Language.Symbols.FunctionSymbol | null;
        ReplaceString: Kusto.Language.Symbols.FunctionSymbol | null;
        ReplaceStrings: Kusto.Language.Symbols.FunctionSymbol | null;
        TrimStart: Kusto.Language.Symbols.FunctionSymbol | null;
        TrimEnd: Kusto.Language.Symbols.FunctionSymbol | null;
        Trim: Kusto.Language.Symbols.FunctionSymbol | null;
        CountOf: Kusto.Language.Symbols.FunctionSymbol | null;
        Translate: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeString_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        UnicodeCodepointsToString: Kusto.Language.Symbols.FunctionSymbol | null;
        ToString: Kusto.Language.Symbols.FunctionSymbol | null;
        ToHex: Kusto.Language.Symbols.FunctionSymbol | null;
        ToDynamic_: Kusto.Language.Symbols.FunctionSymbol | null;
        ToObject_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        ToLong: Kusto.Language.Symbols.FunctionSymbol | null;
        ToInt: Kusto.Language.Symbols.FunctionSymbol | null;
        ToReal: Kusto.Language.Symbols.FunctionSymbol | null;
        ToDouble: Kusto.Language.Symbols.FunctionSymbol | null;
        ToDateTime: Kusto.Language.Symbols.FunctionSymbol | null;
        ToTimespan: Kusto.Language.Symbols.FunctionSymbol | null;
        ToTime: Kusto.Language.Symbols.FunctionSymbol | null;
        ToBool: Kusto.Language.Symbols.FunctionSymbol | null;
        ToBoolean: Kusto.Language.Symbols.FunctionSymbol | null;
        ToDecimal: Kusto.Language.Symbols.FunctionSymbol | null;
        ToGuid: Kusto.Language.Symbols.FunctionSymbol | null;
        GetType: Kusto.Language.Symbols.FunctionSymbol | null;
        UrlEncode: Kusto.Language.Symbols.FunctionSymbol | null;
        UrlEncode_Component: Kusto.Language.Symbols.FunctionSymbol | null;
        UrlDecode: Kusto.Language.Symbols.FunctionSymbol | null;
        Base64EncodeString: Kusto.Language.Symbols.FunctionSymbol | null;
        Base64EncodeToString: Kusto.Language.Symbols.FunctionSymbol | null;
        Base64DecodeString: Kusto.Language.Symbols.FunctionSymbol | null;
        Base64DecodeToString: Kusto.Language.Symbols.FunctionSymbol | null;
        Base64DecodeToArray: Kusto.Language.Symbols.FunctionSymbol | null;
        Base64DecodeToGuid: Kusto.Language.Symbols.FunctionSymbol | null;
        Base64EncodeFromGuid: Kusto.Language.Symbols.FunctionSymbol | null;
        Base64EncodeFromArray: Kusto.Language.Symbols.FunctionSymbol | null;
        ZlibDecompressString: Kusto.Language.Symbols.FunctionSymbol | null;
        ZlibCompressString: Kusto.Language.Symbols.FunctionSymbol | null;
        GzipDecompressString: Kusto.Language.Symbols.FunctionSymbol | null;
        GzipCompressString: Kusto.Language.Symbols.FunctionSymbol | null;
        Lz4CompressDynamicArray: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseCsv: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseJson_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseJson: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseXml: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseUrl_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseUrl: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseUrlQuery_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseUrlQuery: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseIPV4: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseIPV4Mask: Kusto.Language.Symbols.FunctionSymbol | null;
        FormatIPV4: Kusto.Language.Symbols.FunctionSymbol | null;
        FormatIPV4Mask: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv4Compare: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv4IsMatch: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv4IsInRange: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv4IsInAnyRange: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv4NetmaskSuffix: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv4IsPrivate: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv4RangeToCidrList: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseIPV6: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseIPV6Mask: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv6Compare: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv6IsMatch: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv6IsInRange: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv6IsInAnyRange: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv6LookupRanges: Kusto.Language.Symbols.FunctionSymbol | null;
        ParsePath: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseUserAgent: Kusto.Language.Symbols.FunctionSymbol | null;
        ParseVersion: Kusto.Language.Symbols.FunctionSymbol | null;
        FormatDatetime: Kusto.Language.Symbols.FunctionSymbol | null;
        FormatTimespan: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeDatetime: Kusto.Language.Symbols.FunctionSymbol | null;
        MakeTimespan: Kusto.Language.Symbols.FunctionSymbol | null;
        DatetimeAdd: Kusto.Language.Symbols.FunctionSymbol | null;
        DatetimeDiff: Kusto.Language.Symbols.FunctionSymbol | null;
        DayOfWeek: Kusto.Language.Symbols.FunctionSymbol | null;
        DayOfMonth: Kusto.Language.Symbols.FunctionSymbol | null;
        DayOfYear: Kusto.Language.Symbols.FunctionSymbol | null;
        HourOfDay: Kusto.Language.Symbols.FunctionSymbol | null;
        WeekOfYear: Kusto.Language.Symbols.FunctionSymbol | null;
        WeekOfYearISO: Kusto.Language.Symbols.FunctionSymbol | null;
        MonthOfYear: Kusto.Language.Symbols.FunctionSymbol | null;
        StartOfDay: Kusto.Language.Symbols.FunctionSymbol | null;
        StartOfWeek: Kusto.Language.Symbols.FunctionSymbol | null;
        StartOfMonth: Kusto.Language.Symbols.FunctionSymbol | null;
        StartOfYear: Kusto.Language.Symbols.FunctionSymbol | null;
        EndOfDay: Kusto.Language.Symbols.FunctionSymbol | null;
        EndOfWeek: Kusto.Language.Symbols.FunctionSymbol | null;
        EndOfMonth: Kusto.Language.Symbols.FunctionSymbol | null;
        EndOfYear: Kusto.Language.Symbols.FunctionSymbol | null;
        GetYear: Kusto.Language.Symbols.FunctionSymbol | null;
        GetMonth: Kusto.Language.Symbols.FunctionSymbol | null;
        DatePart: Kusto.Language.Symbols.FunctionSymbol | null;
        DatetimePart: Kusto.Language.Symbols.FunctionSymbol | null;
        Now: Kusto.Language.Symbols.FunctionSymbol | null;
        Ago: Kusto.Language.Symbols.FunctionSymbol | null;
        UnixTimeSecondsToDateTime: Kusto.Language.Symbols.FunctionSymbol | null;
        UnixTimeMillisecondsToDateTime: Kusto.Language.Symbols.FunctionSymbol | null;
        UnixTimeMicrosecondsToDateTime: Kusto.Language.Symbols.FunctionSymbol | null;
        UnixTimeNanosecondsToDateTime: Kusto.Language.Symbols.FunctionSymbol | null;
        DatetimeLocalToUtc: Kusto.Language.Symbols.FunctionSymbol | null;
        DatetimeUtcToLocal: Kusto.Language.Symbols.FunctionSymbol | null;
        DateTimeListTimezones: Kusto.Language.Symbols.FunctionSymbol | null;
        PunycodeDecode: Kusto.Language.Symbols.FunctionSymbol | null;
        PunycodeEncode: Kusto.Language.Symbols.FunctionSymbol | null;
        PunycodeDomainDecode: Kusto.Language.Symbols.FunctionSymbol | null;
        PunycodeDomainEncode: Kusto.Language.Symbols.FunctionSymbol | null;
        HashCrc32: Kusto.Language.Symbols.FunctionSymbol | null;
        HashManyCrc32: Kusto.Language.Symbols.FunctionSymbol | null;
        HashDjb2: Kusto.Language.Symbols.FunctionSymbol | null;
        InternalHashXXH64: Kusto.Language.Symbols.FunctionSymbol | null;
        Hash: Kusto.Language.Symbols.FunctionSymbol | null;
        HashXXH64: Kusto.Language.Symbols.FunctionSymbol | null;
        HashSha256: Kusto.Language.Symbols.FunctionSymbol | null;
        HashMd5: Kusto.Language.Symbols.FunctionSymbol | null;
        HashSha1: Kusto.Language.Symbols.FunctionSymbol | null;
        HashCombine: Kusto.Language.Symbols.FunctionSymbol | null;
        HashMany: Kusto.Language.Symbols.FunctionSymbol | null;
        Iif: Kusto.Language.Symbols.FunctionSymbol | null;
        Iff: Kusto.Language.Symbols.FunctionSymbol | null;
        Case: Kusto.Language.Symbols.FunctionSymbol | null;
        Assert: Kusto.Language.Symbols.FunctionSymbol | null;
        Bin: Kusto.Language.Symbols.FunctionSymbol | null;
        Floor: Kusto.Language.Symbols.FunctionSymbol | null;
        BinAt: Kusto.Language.Symbols.FunctionSymbol | null;
        BinAuto: Kusto.Language.Symbols.FunctionSymbol | null;
        Not: Kusto.Language.Symbols.FunctionSymbol | null;
        NotNull_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        IsNotNull: Kusto.Language.Symbols.FunctionSymbol | null;
        IsNull: Kusto.Language.Symbols.FunctionSymbol | null;
        NotEmpty_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        IsNotEmpty: Kusto.Language.Symbols.FunctionSymbol | null;
        IsEmpty: Kusto.Language.Symbols.FunctionSymbol | null;
        IsAscii: Kusto.Language.Symbols.FunctionSymbol | null;
        IsUtf8: Kusto.Language.Symbols.FunctionSymbol | null;
        IsColumnExists: Kusto.Language.Symbols.FunctionSymbol | null;
        ColumnIfExists_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        ColumnIfExists: Kusto.Language.Symbols.FunctionSymbol | null;
        Around: Kusto.Language.Symbols.FunctionSymbol | null;
        BinaryAnd: Kusto.Language.Symbols.FunctionSymbol | null;
        BinaryOr: Kusto.Language.Symbols.FunctionSymbol | null;
        BinaryXor: Kusto.Language.Symbols.FunctionSymbol | null;
        BinaryNot: Kusto.Language.Symbols.FunctionSymbol | null;
        BinaryShiftRight: Kusto.Language.Symbols.FunctionSymbol | null;
        BinaryShiftLeft: Kusto.Language.Symbols.FunctionSymbol | null;
        BitsetCountOnes: Kusto.Language.Symbols.FunctionSymbol | null;
        TreePath: Kusto.Language.Symbols.FunctionSymbol | null;
        Repeat: Kusto.Language.Symbols.FunctionSymbol | null;
        Arraylength_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        ArrayLength: Kusto.Language.Symbols.FunctionSymbol | null;
        ArrayReverse: Kusto.Language.Symbols.FunctionSymbol | null;
        Range: Kusto.Language.Symbols.FunctionSymbol | null;
        ArrayConcat: Kusto.Language.Symbols.FunctionSymbol | null;
        ArrayIff: Kusto.Language.Symbols.FunctionSymbol | null;
        ArrayIif: Kusto.Language.Symbols.FunctionSymbol | null;
        ArrayIndexOf: Kusto.Language.Symbols.FunctionSymbol | null;
        SetHasElement: Kusto.Language.Symbols.FunctionSymbol | null;
        ArraySlice: Kusto.Language.Symbols.FunctionSymbol | null;
        ArraySplit: Kusto.Language.Symbols.FunctionSymbol | null;
        ArrayShiftLeft: Kusto.Language.Symbols.FunctionSymbol | null;
        ArrayShiftRight: Kusto.Language.Symbols.FunctionSymbol | null;
        ArrayRotateLeft: Kusto.Language.Symbols.FunctionSymbol | null;
        ArrayRotateRight: Kusto.Language.Symbols.FunctionSymbol | null;
        ArraySortAsc: Kusto.Language.Symbols.FunctionSymbol | null;
        ArraySortDesc: Kusto.Language.Symbols.FunctionSymbol | null;
        BagKeys: Kusto.Language.Symbols.FunctionSymbol | null;
        Zip: Kusto.Language.Symbols.FunctionSymbol | null;
        Pack: Kusto.Language.Symbols.FunctionSymbol | null;
        PackDictionary: Kusto.Language.Symbols.FunctionSymbol | null;
        BagPack: Kusto.Language.Symbols.FunctionSymbol | null;
        BagPackColumns: Kusto.Language.Symbols.FunctionSymbol | null;
        PackAll: Kusto.Language.Symbols.FunctionSymbol | null;
        PackArray: Kusto.Language.Symbols.FunctionSymbol | null;
        SetUnion: Kusto.Language.Symbols.FunctionSymbol | null;
        SetIntersect: Kusto.Language.Symbols.FunctionSymbol | null;
        SetDifference: Kusto.Language.Symbols.FunctionSymbol | null;
        SetEquals: Kusto.Language.Symbols.FunctionSymbol | null;
        BagMerge: Kusto.Language.Symbols.FunctionSymbol | null;
        DynamicToJson: Kusto.Language.Symbols.FunctionSymbol | null;
        BagRemoveKeys: Kusto.Language.Symbols.FunctionSymbol | null;
        BagZip: Kusto.Language.Symbols.FunctionSymbol | null;
        JaccardIndex: Kusto.Language.Symbols.FunctionSymbol | null;
        BagHasKey: Kusto.Language.Symbols.FunctionSymbol | null;
        BagSetKey: Kusto.Language.Symbols.FunctionSymbol | null;
        PercentileTDigest: Kusto.Language.Symbols.FunctionSymbol | null;
        PercentileArrayTDigest: Kusto.Language.Symbols.FunctionSymbol | null;
        PercentRankTDigest: Kusto.Language.Symbols.FunctionSymbol | null;
        RankTDigest: Kusto.Language.Symbols.FunctionSymbol | null;
        TdigestIsValid: Kusto.Language.Symbols.FunctionSymbol | null;
        HllIsValid: Kusto.Language.Symbols.FunctionSymbol | null;
        TDigestMerge: Kusto.Language.Symbols.FunctionSymbol | null;
        MergeTDigest: Kusto.Language.Symbols.FunctionSymbol | null;
        HllMerge: Kusto.Language.Symbols.FunctionSymbol | null;
        DCountHll: Kusto.Language.Symbols.FunctionSymbol | null;
        HllNormalize: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFir: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesStats: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesStatsDynamic: Kusto.Language.Symbols.FunctionSymbol | null;
        ArraySum: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFft: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesIfft: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFitPoly: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFitLine: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFitLineDynamic: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFit2Lines: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFit2LinesDynamic: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesOutliers: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesIIR: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesPeriodsDetect: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesPeriodsValidate: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFillBackwards: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFillForward: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFillConst: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFillLinear: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesAdd: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesSubtract: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesMultiply: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesDivide: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesPow: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesGreater: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesGreaterEquals: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesLess: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesLessEquals: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesEquals: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesNotEquals: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesSeasonal: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesExp: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesSign: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesAbs: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesSin: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesAsin: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesCos: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesAcos: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesTan: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesAtan: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesLog: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesFloor: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesCeiling: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesDecompose: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesDecomposeForecast: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesDecomposeAnomalies: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesPearsonCorrelation: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesDotProduct: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesMagnitude: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesSum: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesProduct: Kusto.Language.Symbols.FunctionSymbol | null;
        SeriesCosineSimilarity: Kusto.Language.Symbols.FunctionSymbol | null;
        Round: Kusto.Language.Symbols.FunctionSymbol | null;
        Ceiling: Kusto.Language.Symbols.FunctionSymbol | null;
        Pow: Kusto.Language.Symbols.FunctionSymbol | null;
        Sqrt: Kusto.Language.Symbols.FunctionSymbol | null;
        Log: Kusto.Language.Symbols.FunctionSymbol | null;
        Log2: Kusto.Language.Symbols.FunctionSymbol | null;
        Log10: Kusto.Language.Symbols.FunctionSymbol | null;
        Exp: Kusto.Language.Symbols.FunctionSymbol | null;
        Exp2: Kusto.Language.Symbols.FunctionSymbol | null;
        Exp10: Kusto.Language.Symbols.FunctionSymbol | null;
        PI: Kusto.Language.Symbols.FunctionSymbol | null;
        Cos: Kusto.Language.Symbols.FunctionSymbol | null;
        Sin: Kusto.Language.Symbols.FunctionSymbol | null;
        Tan: Kusto.Language.Symbols.FunctionSymbol | null;
        Acos: Kusto.Language.Symbols.FunctionSymbol | null;
        Asin: Kusto.Language.Symbols.FunctionSymbol | null;
        Atan: Kusto.Language.Symbols.FunctionSymbol | null;
        Atan2: Kusto.Language.Symbols.FunctionSymbol | null;
        Abs: Kusto.Language.Symbols.FunctionSymbol | null;
        Cot: Kusto.Language.Symbols.FunctionSymbol | null;
        Degrees: Kusto.Language.Symbols.FunctionSymbol | null;
        Radians: Kusto.Language.Symbols.FunctionSymbol | null;
        Sign: Kusto.Language.Symbols.FunctionSymbol | null;
        Rand: Kusto.Language.Symbols.FunctionSymbol | null;
        BetaCdf: Kusto.Language.Symbols.FunctionSymbol | null;
        BetaInv: Kusto.Language.Symbols.FunctionSymbol | null;
        BetaPdf: Kusto.Language.Symbols.FunctionSymbol | null;
        Gamma: Kusto.Language.Symbols.FunctionSymbol | null;
        LogGamma: Kusto.Language.Symbols.FunctionSymbol | null;
        Erf: Kusto.Language.Symbols.FunctionSymbol | null;
        Erfc: Kusto.Language.Symbols.FunctionSymbol | null;
        IsNan: Kusto.Language.Symbols.FunctionSymbol | null;
        IsInf: Kusto.Language.Symbols.FunctionSymbol | null;
        IsFinite: Kusto.Language.Symbols.FunctionSymbol | null;
        Coalesce: Kusto.Language.Symbols.FunctionSymbol | null;
        MaxOf: Kusto.Language.Symbols.FunctionSymbol | null;
        MinOf: Kusto.Language.Symbols.FunctionSymbol | null;
        WelchTest: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoFromWkt: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoAngle: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoAzimuth: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoDistance2Points: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoDistancePointToLine: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoDistancePointToPolygon: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPointInCircle: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPointInPolygon: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPointBuffer: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLineBuffer: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPolygonBuffer: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoIntersects2Lines: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoIntersection2Lines: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoIntersectsLineWithPolygon: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoIntersectionLineWithPolygon: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoIntersects2Polygons: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoIntersection2Polygons: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPolygonsUnion: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLinesUnion: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPolygonToS2Cells: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLineToS2Cells: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPolygonS2CellCoveringLevel: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLineS2CellCoveringLevel: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLengthToS2CellLevel: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPolygonDensify: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPolygonArea: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPolygonCentroid: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPolygonPerimeter: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLineLength: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLineCentroid: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLineDensify: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLineSimplify: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLineLocatePoint: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLineInterpolatePoint: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoClosestPointOnLine: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoClosestPointOnPolygon: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPolygonSimplify: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoSimplifyPolygonsArray: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoLineValidate: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPolygonValidate: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPointToGeohash: Kusto.Language.Symbols.FunctionSymbol | null;
        GeohashToCentralPoint: Kusto.Language.Symbols.FunctionSymbol | null;
        GeohashToPolygon: Kusto.Language.Symbols.FunctionSymbol | null;
        GeohashNeighbors: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPointToS2Cell: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoS2CellToCentralPoint: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoS2CellNeighbors: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoS2CellToPolygon: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPointToH3Cell: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoH3CellToCentralPoint: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoH3CellToPolygon: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoH3CellNeighbors: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoH3CellChildren: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoH3CellParent: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoH3CellRings: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoH3CellLevel: Kusto.Language.Symbols.FunctionSymbol | null;
        GeoPolygonToH3Cells: Kusto.Language.Symbols.FunctionSymbol | null;
        _All: Kusto.Language.Symbols.FunctionSymbol | null;
        Any: Kusto.Language.Symbols.FunctionSymbol | null;
        Map: Kusto.Language.Symbols.FunctionSymbol | null;
        InnerNodes: Kusto.Language.Symbols.FunctionSymbol | null;
        NodeDegreeIn: Kusto.Language.Symbols.FunctionSymbol | null;
        NodeDegreeOut: Kusto.Language.Symbols.FunctionSymbol | null;
        NodeId: Kusto.Language.Symbols.FunctionSymbol | null;
        Labels: Kusto.Language.Symbols.FunctionSymbol | null;
        CurrentClusterEndpoint: Kusto.Language.Symbols.FunctionSymbol | null;
        CurrentDatabase: Kusto.Language.Symbols.FunctionSymbol | null;
        CurrentPrincipal: Kusto.Language.Symbols.FunctionSymbol | null;
        CurrentPrincipalDetails: Kusto.Language.Symbols.FunctionSymbol | null;
        CurrentPrincipalIsMemberOf: Kusto.Language.Symbols.FunctionSymbol | null;
        ExtentId: Kusto.Language.Symbols.FunctionSymbol | null;
        ExtentId2: Kusto.Language.Symbols.FunctionSymbol | null;
        ExtentTags: Kusto.Language.Symbols.FunctionSymbol | null;
        CurrentNodeId: Kusto.Language.Symbols.FunctionSymbol | null;
        IngestionTime: Kusto.Language.Symbols.FunctionSymbol | null;
        CursorAfter: Kusto.Language.Symbols.FunctionSymbol | null;
        CursorBeforeOrAt: Kusto.Language.Symbols.FunctionSymbol | null;
        CursorCurrent: Kusto.Language.Symbols.FunctionSymbol | null;
        CursorCurrent2: Kusto.Language.Symbols.FunctionSymbol | null;
        FormatBytes: Kusto.Language.Symbols.FunctionSymbol | null;
        RowNumber: Kusto.Language.Symbols.FunctionSymbol | null;
        RowCumSum: Kusto.Language.Symbols.FunctionSymbol | null;
        RowRank: Kusto.Language.Symbols.FunctionSymbol | null;
        RowRankMin: Kusto.Language.Symbols.FunctionSymbol | null;
        RowRankDense: Kusto.Language.Symbols.FunctionSymbol | null;
        RowWindowSession: Kusto.Language.Symbols.FunctionSymbol | null;
        Prev: Kusto.Language.Symbols.FunctionSymbol | null;
        Next: Kusto.Language.Symbols.FunctionSymbol | null;
        RowstoreOrdinalRange: Kusto.Language.Symbols.FunctionSymbol | null;
        EstimateDataSize: Kusto.Language.Symbols.FunctionSymbol | null;
        NewGuid: Kusto.Language.Symbols.FunctionSymbol | null;
        HasIpv4: Kusto.Language.Symbols.FunctionSymbol | null;
        HasIpv4Prefix: Kusto.Language.Symbols.FunctionSymbol | null;
        HasAnyIpv4: Kusto.Language.Symbols.FunctionSymbol | null;
        HasAnyIpv4Prefix: Kusto.Language.Symbols.FunctionSymbol | null;
        Invoke: Kusto.Language.Symbols.FunctionSymbol | null;
        Cast: Kusto.Language.Symbols.FunctionSymbol | null;
        IpGeoLocation: Kusto.Language.Symbols.FunctionSymbol | null;
        ColumnNamesOf: Kusto.Language.Symbols.FunctionSymbol | null;
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.FunctionSymbol> | null;
    }
    var Functions: FunctionsFunc;

    /**
     * The global state that a kusto query is associated with.
     *
     * @public
     * @class Kusto.Language.GlobalState
     */
    interface GlobalState {
        /**
         * Known clusters
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function Clusters
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Clusters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ClusterSymbol> | null;
        /**
         * The default cluster.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function Cluster
         * @type Kusto.Language.Symbols.ClusterSymbol
         */
        Cluster: Kusto.Language.Symbols.ClusterSymbol | null;
        /**
         * The default database.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function Database
         * @type Kusto.Language.Symbols.DatabaseSymbol
         */
        Database: Kusto.Language.Symbols.DatabaseSymbol | null;
        /**
         * The default domain suffix
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function Domain
         * @type string
         */
        Domain: string | null;
        /**
         * Known functions.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function Functions
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Functions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.FunctionSymbol> | null;
        /**
         * Known aggregates.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function Aggregates
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Aggregates: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.FunctionSymbol> | null;
        /**
         * Known plug-ins.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function PlugIns
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        PlugIns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.FunctionSymbol> | null;
        /**
         * Scalar operators
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function Operators
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Operators: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.OperatorSymbol> | null;
        /**
         * The kind of server that determines what set of control commands are available.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function ServerKind
         * @type string
         */
        ServerKind: string | null;
        /**
         * Symbols that are in scope but defined outside the query.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function AmbientSymbols
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        AmbientSymbols: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        /**
         * Symbols for client parameters that appear as braced names in a query
         and are textually substituted by the client before execution.
         Client parameters do not require declared symbols to function.
         These symbols provide information for better semantic analysis.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function ClientSymbols
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        ClientSymbols: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        /**
         * Known query options
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function Options
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Options: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.OptionSymbol> | null;
        /**
         * The {@link } used to store additional accumulated global state.
         If caching is not enabled for this {@link } this property will return null.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function Cache
         * @type Kusto.Language.KustoCache
         */
        Cache: Kusto.Language.KustoCache | null;
        /**
         * Options to determine parsing behavior.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.GlobalState
         * @function ParseOptions
         * @type Kusto.Language.ParseOptions
         */
        ParseOptions: Kusto.Language.ParseOptions | null;
        /**
         * Ambient parameters
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.GlobalState
         * @function Parameters
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ParameterSymbol> | null;
        /**
         * Makes a new instance of this {@link } that contains the same content,
         but possibly clears the cache.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @return  {Kusto.Language.GlobalState}
         */
        Copy(): Kusto.Language.GlobalState | null;
        /**
         * Conditionally creates a new instance of a {@link } if one of the 
         optional arguments is different than the current corresponding value.
         *
         * @instance
         * @private
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Utils.Optional$1}    domain            
         * @param   {Kusto.Language.Utils.Optional$1}    clusters          
         * @param   {Kusto.Language.Utils.Optional$1}    cluster           
         * @param   {Kusto.Language.Utils.Optional$1}    database          
         * @param   {Kusto.Language.Utils.Optional$1}    functions         
         * @param   {Kusto.Language.Utils.Optional$1}    aggregates        
         * @param   {Kusto.Language.Utils.Optional$1}    plugins           
         * @param   {Kusto.Language.Utils.Optional$1}    operators         
         * @param   {Kusto.Language.Utils.Optional$1}    serverKind        
         * @param   {Kusto.Language.Utils.Optional$1}    ambientSymbols    
         * @param   {Kusto.Language.Utils.Optional$1}    clientSymbols     
         * @param   {Kusto.Language.Utils.Optional$1}    options           
         * @param   {Kusto.Language.Utils.Optional$1}    properties        
         * @param   {Kusto.Language.Utils.Optional$1}    cache             
         * @param   {Kusto.Language.Utils.Optional$1}    parseOptions
         * @return  {Kusto.Language.GlobalState}
         */
        /**
         * Constructs a new {@link } with caching enabled.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @return  {Kusto.Language.GlobalState}
         */
        WithCache(): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the specified {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.ParseOptions}    parseOptions
         * @return  {Kusto.Language.GlobalState}
         */
        WithParseOptions(parseOptions: Kusto.Language.ParseOptions | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the specified cluster list.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    clusters
         * @return  {Kusto.Language.GlobalState}
         */
        WithClusterList$1(clusters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ClusterSymbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the specified cluster list.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Array.<Kusto.Language.Symbols.ClusterSymbol>}    clusters
         * @return  {Kusto.Language.GlobalState}
         */
        WithClusterList(clusters: Kusto.Language.Symbols.ClusterSymbol[] | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with either
         the cluster with the same name replaced with the new cluster
         or the new cluster added.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.ClusterSymbol}    cluster
         * @return  {Kusto.Language.GlobalState}
         */
        AddOrReplaceCluster(cluster: Kusto.Language.Symbols.ClusterSymbol | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the specified default cluster.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.ClusterSymbol}    cluster
         * @return  {Kusto.Language.GlobalState}
         */
        WithCluster(cluster: Kusto.Language.Symbols.ClusterSymbol | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the specified default cluster.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                        clusterName
         * @return  {Kusto.Language.GlobalState}
         */
        WithCluster$1(clusterName: string | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the specified default domain suffix.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                        domain
         * @return  {Kusto.Language.GlobalState}
         */
        WithDomain(domain: string | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the specified default database.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}    database
         * @return  {Kusto.Language.GlobalState}
         */
        WithDatabase(database: Kusto.Language.Symbols.DatabaseSymbol | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the specified default database.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                        databaseName
         * @return  {Kusto.Language.GlobalState}
         */
        WithDatabase$1(databaseName: string | null): Kusto.Language.GlobalState | null;
        /**
         * True if the {@link } is part of one of the known databases.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.TableSymbol}    table
         * @return  {boolean}
         */
        IsDatabaseTable(table: Kusto.Language.Symbols.TableSymbol | null): boolean;
        /**
         * True if the {@link } is part of one of the known databases.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.FunctionSymbol}    function
         * @return  {boolean}
         */
        IsDatabaseFunction($function: Kusto.Language.Symbols.FunctionSymbol | null): boolean;
        /**
         * True if the {@link } is contained by one of the known databases.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.Symbol}    symbol
         * @return  {boolean}
         */
        IsDatabaseSymbol(symbol: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Constructs a new {@link } with the specified functions.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    functions
         * @return  {Kusto.Language.GlobalState}
         */
        WithFunctions(functions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.FunctionSymbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Gets the cluster given the short name or host name.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                                  name
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        GetCluster$1(name: string | null): Kusto.Language.Symbols.ClusterSymbol | null;
        /**
         * Gets the {@link } that contains the {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}    database
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        GetCluster(database: Kusto.Language.Symbols.DatabaseSymbol | null): Kusto.Language.Symbols.ClusterSymbol | null;
        /**
         * Gets the {@link } that contains the {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.TableSymbol}       table
         * @return  {Kusto.Language.Symbols.DatabaseSymbol}
         */
        GetDatabase$3(table: Kusto.Language.Symbols.TableSymbol | null): Kusto.Language.Symbols.DatabaseSymbol | null;
        /**
         * Gets the {@link } that contains the {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.FunctionSymbol}    function
         * @return  {Kusto.Language.Symbols.DatabaseSymbol}
         */
        GetDatabase$1($function: Kusto.Language.Symbols.FunctionSymbol | null): Kusto.Language.Symbols.DatabaseSymbol | null;
        /**
         * Gets the {@link } that contains the {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.EntityGroupSymbol}    entityGroup
         * @return  {Kusto.Language.Symbols.DatabaseSymbol}
         */
        GetDatabase(entityGroup: Kusto.Language.Symbols.EntityGroupSymbol | null): Kusto.Language.Symbols.DatabaseSymbol | null;
        /**
         * Gets the {@link } that contains this {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.Symbol}            symbol
         * @return  {Kusto.Language.Symbols.DatabaseSymbol}
         */
        GetDatabase$2(symbol: Kusto.Language.Symbols.Symbol | null): Kusto.Language.Symbols.DatabaseSymbol | null;
        /**
         * Gets the known database's {@link } that contains the {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.ColumnSymbol}    column
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        GetTable(column: Kusto.Language.Symbols.ColumnSymbol | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Gets the function with the specified name, or null
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                                   name
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        GetFunction(name: string | null): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Constructs a new {@link } with the specified aggregates.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    aggregates
         * @return  {Kusto.Language.GlobalState}
         */
        WithAggregates(aggregates: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.FunctionSymbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Gets the aggregate with the specified name, or null.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                                   name
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        GetAggregate(name: string | null): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Constructs a new {@link } with the specified plug-ins.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    plugins
         * @return  {Kusto.Language.GlobalState}
         */
        WithPlugIns(plugins: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.FunctionSymbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Gets the plug-in with the specified name, or null.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                                   name
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        GetPlugIn(name: string | null): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * True if the function is a known aggregate.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.FunctionSymbol}    fn
         * @return  {boolean}
         */
        IsAggregateFunction(fn: Kusto.Language.Symbols.FunctionSymbol | null): boolean;
        /**
         * True if the function is a known built-in function.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.FunctionSymbol}    fn
         * @return  {boolean}
         */
        IsBuiltInFunction(fn: Kusto.Language.Symbols.FunctionSymbol | null): boolean;
        IsBuiltInFunctionName(functionName: string | null): boolean;
        /**
         * Constructs a new {@link } with the specified operators.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    operators
         * @return  {Kusto.Language.GlobalState}
         */
        WithOperators(operators: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.OperatorSymbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Gets the built-in operator symbol for the corresponding argument types.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Kusto.Language.Symbols.OperatorKind}      kind
         * @return  {Kusto.Language.Symbols.OperatorSymbol}
         */
        GetOperator(kind: Kusto.Language.Symbols.OperatorKind): Kusto.Language.Symbols.OperatorSymbol | null;
        /**
         * Constructs a new {@link } with the specified server kind {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                        serverKind
         * @return  {Kusto.Language.GlobalState}
         */
        WithServerKind(serverKind: string | null): Kusto.Language.GlobalState | null;
        /**
         * Gets a {@link } given its name.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                                  name
         * @return  {Kusto.Language.Symbols.CommandSymbol}
         */
        GetCommand(name: string | null): Kusto.Language.Symbols.CommandSymbol | null;
        /**
         * Constructs a new {@link } with the specified ambient symbols.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    symbols
         * @return  {Kusto.Language.GlobalState}
         */
        WithAmbientSymbols(symbols: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the additional ambient symbols.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    symbols
         * @return  {Kusto.Language.GlobalState}
         */
        AddOrUpdateAmbientSymbols$1(symbols: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the additional ambient symbols.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Array.<Kusto.Language.Symbols.Symbol>}    symbols
         * @return  {Kusto.Language.GlobalState}
         */
        AddOrUpdateAmbientSymbols(symbols: Kusto.Language.Symbols.Symbol[] | null): Kusto.Language.GlobalState | null;
        /**
         * Gets the ambient {@link } given its name.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                           name
         * @return  {Kusto.Language.Symbols.Symbol}
         */
        GetAmbientSymbol(name: string | null): Kusto.Language.Symbols.Symbol | null;
        /**
         * Constructs a new {@link } with the specified ambient parameters.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    parameters
         * @return  {Kusto.Language.GlobalState}
         */
        WithParameters(parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ParameterSymbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the additional ambient parameters.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    parameters
         * @return  {Kusto.Language.GlobalState}
         */
        AddParameters$1(parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ParameterSymbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the additional ambient parameters.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Array.<Kusto.Language.Symbols.ParameterSymbol>}    parameters
         * @return  {Kusto.Language.GlobalState}
         */
        AddParameters(parameters: Kusto.Language.Symbols.ParameterSymbol[] | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the specified client parameter symbols.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    symbols
         * @return  {Kusto.Language.GlobalState}
         */
        WithClientSymbols(symbols: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the specified client symbols added or updated.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    symbols
         * @return  {Kusto.Language.GlobalState}
         */
        AddOrUpdateClientSymbols$1(symbols: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Constructs a new {@link } with the specified client symbols added or updated.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Array.<Kusto.Language.Symbols.Symbol>}    symbols
         * @return  {Kusto.Language.GlobalState}
         */
        AddOrUpdateClientSymbols(symbols: Kusto.Language.Symbols.Symbol[] | null): Kusto.Language.GlobalState | null;
        /**
         * Gets the client parameter {@link } given its name.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                           name
         * @return  {Kusto.Language.Symbols.Symbol}
         */
        GetClientSymbol(name: string | null): Kusto.Language.Symbols.Symbol | null;
        /**
         * Constructs a new {@link } with the specified options.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {System.Collections.Generic.IReadOnlyList$1}    options
         * @return  {Kusto.Language.GlobalState}
         */
        WithOptions(options: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.OptionSymbol> | null): Kusto.Language.GlobalState | null;
        /**
         * Gets the {@link } with the specified name, or null if none match.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {string}                                 name
         * @return  {Kusto.Language.Symbols.OptionSymbol}
         */
        GetOption(name: string | null): Kusto.Language.Symbols.OptionSymbol | null;
        /**
         * Gets the value for the specified property
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Function}                                T           
         * @param   {Kusto.Language.GlobalStateProperty$1}    property
         * @return  {T}
         */
        GetProperty<T>(T: {prototype: T}, property: Kusto.Language.GlobalStateProperty$1<T> | null): T;
        /**
         * Constructs a new {@link } instance with the property added or replaced.
         *
         * @instance
         * @public
         * @this Kusto.Language.GlobalState
         * @memberof Kusto.Language.GlobalState
         * @param   {Function}                                T           
         * @param   {Kusto.Language.GlobalStateProperty$1}    property    
         * @param   {T}                                       value
         * @return  {Kusto.Language.GlobalState}
         */
        WithProperty<T>(T: {prototype: T}, property: Kusto.Language.GlobalStateProperty$1<T> | null, value: T): Kusto.Language.GlobalState | null;
    }
    interface GlobalStateFunc extends Function {
        prototype: GlobalState;
        PropertyAndValue: Kusto.Language.GlobalState.PropertyAndValueFunc;
        /**
         * The default {@link }
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.GlobalState
         * @function Default
         * @type Kusto.Language.GlobalState
         */
        Default: Kusto.Language.GlobalState | null;
    }
    var GlobalState: GlobalStateFunc;
    module GlobalState {
        interface PropertyAndValue {
            Property: Kusto.Language.GlobalStateProperty | null;
            Value: any | null;
        }
        interface PropertyAndValueFunc extends Function {
            prototype: PropertyAndValue;
            new (property: Kusto.Language.GlobalStateProperty | null, value: any | null): PropertyAndValue;
        }
    }

    interface GlobalStateProperty {
        Name: string | null;
    }
    interface GlobalStatePropertyFunc extends Function {
        prototype: GlobalStateProperty;
    }
    var GlobalStateProperty: GlobalStatePropertyFunc;

    enum IncludeFunctionKind {
        BuiltInFunctions = 1,
        DatabaseFunctions = 2,
        LocalFunctions = 4,
        LocalViews = 8,
        None = 0,
        All = 15
    }

    interface KustoCache {
        Globals: Kusto.Language.GlobalState | null;
        WithGlobals(globals: Kusto.Language.GlobalState | null): Kusto.Language.KustoCache | null;
        /**
         * Gets or creates a new instance of {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCache
         * @memberof Kusto.Language.KustoCache
         * @param   {Function}    T
         * @return  {T}
         */
        GetOrCreate<T>(T: {prototype: T}): T;
        /**
         * Gets or creates a new instance of {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCache
         * @memberof Kusto.Language.KustoCache
         * @param   {Function}       T          
         * @param   {System.Func}    creator
         * @return  {T}
         */
        GetOrCreate$1<T>(T: {prototype: T}, creator: {(): T} | null): T;
        /**
         * Gets the value associated with the type or returns false.
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCache
         * @memberof Kusto.Language.KustoCache
         * @param   {Function}    T        
         * @param   {T}           value
         * @return  {boolean}
         */
        TryGetValue<T>(T: {prototype: T}, value: {v: T}): boolean;
    }
    interface KustoCacheFunc extends Function {
        prototype: KustoCache;
        new (globals: Kusto.Language.GlobalState | null): KustoCache;
    }
    var KustoCache: KustoCacheFunc;

    /**
     * A model of a Kusto code block, with the breakdown of its syntax, diagnostics and referenced symbols.
     *
     * @public
     * @class Kusto.Language.KustoCode
     */
    interface KustoCode {
        /**
         * The text of the code.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.KustoCode
         * @function Text
         * @type string
         */
        Text: string | null;
        /**
         * The kind of the code. See {@link }.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.KustoCode
         * @function Kind
         * @type string
         */
        Kind: string | null;
        /**
         * The root {@link } of the parsed code.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoCode
         * @function Syntax
         * @type Kusto.Language.Syntax.SyntaxNode
         */
        Syntax: Kusto.Language.Syntax.SyntaxNode | null;
        /**
         * True if semantic analysis has been performed.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoCode
         * @function HasSemantics
         * @type boolean
         */
        HasSemantics: boolean;
        /**
         * The resulting {@link } of the query or control command in the code.
         This value is only available when semantic analysis has been performed.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.KustoCode
         * @function ResultType
         * @type Kusto.Language.Symbols.TypeSymbol
         */
        ResultType: Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * The {@link } used during parsing and semantic analysis.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.KustoCode
         * @function Globals
         * @type Kusto.Language.GlobalState
         */
        Globals: Kusto.Language.GlobalState | null;
        /**
         * The deepest node depth of the syntax tree.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoCode
         * @function MaxDepth
         * @type number
         */
        MaxDepth: number;
        /**
         * The language dialect of the code.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoCode
         * @function Dialect
         * @type Kusto.Language.KustoDialect
         */
        Dialect: Kusto.Language.KustoDialect;
        /**
         * Returns a new {@link } with semantic analysis performed
         or the current instance if semantic analysis has already been performed.
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {Kusto.Language.GlobalState}                globals              
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken
         * @return  {Kusto.Language.KustoCode}
         */
        Analyze(globals?: Kusto.Language.GlobalState | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.KustoCode | null;
        /**
         * Creates a new instance of {@link } with the specified {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {Kusto.Language.GlobalState}                globals              
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken
         * @return  {Kusto.Language.KustoCode}
         */
        WithGlobals(globals: Kusto.Language.GlobalState | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.KustoCode | null;
        /**
         * Gets all diagnostics in the code (syntactic and semantic)
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {Kusto.Language.Utils.CancellationToken}        cancellationToken
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetDiagnostics(cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * Gets syntax diagnostics in the code.
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {Kusto.Language.Utils.CancellationToken}        cancellationToken
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetSyntaxDiagnostics(cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * Gets a list of all the symbols in the scope related to the specified text position.
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {number}                                        position             
         * @param   {Kusto.Language.Symbols.SymbolMatch}            match                
         * @param   {Kusto.Language.IncludeFunctionKind}            include              
         * @param   {Kusto.Language.Utils.CancellationToken}        cancellationToken
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetSymbolsInScope(position: number, match?: Kusto.Language.Symbols.SymbolMatch, include?: Kusto.Language.IncludeFunctionKind, cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        /**
         * Gets the symbol that would be referenced by the name, if the name were to occur at the position in the text.
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {number}                                    position             
         * @param   {string}                                    name                 
         * @param   {Kusto.Language.Symbols.SymbolMatch}        match                
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken
         * @return  {Kusto.Language.Symbols.Symbol}
         */
        GetSpeculativeReferencedSymbol(position: number, name: string | null, match?: Kusto.Language.Symbols.SymbolMatch, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Symbols.Symbol | null;
        /**
         * Gets the {@link } that holds the columns that are implicitly in scope at the position within the query.
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {number}                                    position             
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        GetColumnsInScope(position: number, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Gets the 1-based line and lineOffset for a position in the text.
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {number}          position      
         * @param   {System.Int32}    line          
         * @param   {System.Int32}    lineOffset
         * @return  {boolean}
         */
        TryGetLineAndOffset(position: number, line: {v: number}, lineOffset: {v: number}): boolean;
        /**
         * Gets the index of the token that includes the text position.
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {number}    position
         * @return  {number}
         */
        GetTokenIndex(position: number): number;
        /**
         * The lexical tokens produced during parsing.
         *
         * @instance
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetLexicalTokens(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.LexicalToken> | null;
    }
    interface KustoCodeFunc extends Function {
        prototype: KustoCode;
        AnalysisState: KustoCode.AnalysisStateFunc;
        /**
         * Create a new {@link } instance from the text and globals. Does not perform semantic analysis.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {string}                        text       The code text
         * @param   {Kusto.Language.GlobalState}    globals    The globals to use for parsing and semantic analysis. Defaults to {@link }
         * @return  {Kusto.Language.KustoCode}
         */
        Parse(text: string | null, globals?: Kusto.Language.GlobalState | null): Kusto.Language.KustoCode | null;
        /**
         * Create a new {@link } instance from the text and globals and performs semantic analysis.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {string}                                    text                 The code text
         * @param   {Kusto.Language.GlobalState}                globals              The globals to use for parsing and semantic analysis. Defaults to {@link }
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken    A {@link } that can be used to cancel parsing and semantic analysis.
         * @return  {Kusto.Language.KustoCode}
         */
        ParseAndAnalyze(text: string | null, globals?: Kusto.Language.GlobalState | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.KustoCode | null;
        /**
         * Gets the starting offsets for each token
         *
         * @static
         * @private
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {Array.<Kusto.Language.Parsing.LexicalToken>}    tokens
         * @return  {System.Collections.Generic.List$1}
         */
        /**
         * Creates a new {@link } form the already parsed lexical tokens.
         *
         * @static
         * @private
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {string}                                         text                 
         * @param   {Kusto.Language.GlobalState}                     globals              
         * @param   {Array.<Kusto.Language.Parsing.LexicalToken>}    tokens               
         * @param   {System.Collections.Generic.List$1}              tokenStarts          
         * @param   {boolean}                                        analyze              
         * @param   {Kusto.Language.Utils.CancellationToken}         cancellationToken
         * @return  {Kusto.Language.KustoCode}
         */
        /**
         * Determines the result type of a query or control command block.
         *
         * @static
         * @private
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {Kusto.Language.Syntax.SyntaxNode}     root
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Determines the code kind from the text. See {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoCode
         * @memberof Kusto.Language.KustoCode
         * @param   {string}    text
         * @return  {string}
         */
        GetKind(text: string | null): string | null;
    }
    var KustoCode: KustoCodeFunc;
    module KustoCode {
        interface AnalysisState {
        }
        interface AnalysisStateFunc extends Function {
            prototype: AnalysisState;
            NotRequested: number;
            Performed: number;
            NotSafe: number;
        }
    }

    enum KustoDialect {
        Unknown = 0,
        ClusterManagerCommand = 1,
        DataManagerCommand = 2,
        EngineCommand = 3,
        Query = 4
    }

    /**
     * Useful facts about the function body identified during analysis.
     *
     * @public
     * @class Kusto.Language.FunctionBodyFacts
     */
    interface FunctionBodyFacts {
        /**
         * The return type of the function body when it is not dependent on parameters.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function NonVariableReturnType
         * @type Kusto.Language.Symbols.TypeSymbol
         */
        NonVariableReturnType: Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * The parameters of the function that causes the return type to be variable.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function DependentParameters
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        DependentParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null;
        /**
         * The names used in unqualified table calls.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function UnqualifiedTableNames
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        UnqualifiedTableNames: System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * True if the function body had syntax or semantic errors.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function HasSyntaxErrors
         * @type boolean
         */
        HasSyntaxErrors: boolean;
        /**
         * True if the function's return type is dependent on argument values at call site.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function HasVariableReturnType
         * @type boolean
         */
        HasVariableReturnType: boolean;
        /**
         * True if the function body has a call to the cluster method, or a function invoked within it does
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function HasClusterCall
         * @type boolean
         */
        HasClusterCall: boolean;
        /**
         * True if the function body has a call to the database method, or a function invoked within it does
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function HasDatabaseCall
         * @type boolean
         */
        HasDatabaseCall: boolean;
        /**
         * True if the function body has a call to the unqualified table method, or a function invoked within it does.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function HasUnqualifiedTableCall
         * @type boolean
         */
        HasUnqualifiedTableCall: boolean;
        /**
         * True if the function body has a call to the qualified database().table method, or a function invoked within it does.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function HasQualifiedTableCall
         * @type boolean
         */
        HasQualifiedTableCall: boolean;
        /**
         * True if the function body has a call to the externaltable method, or a function invoked within it does.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function HasExternalTableCall
         * @type boolean
         */
        HasExternalTableCall: boolean;
        /**
         * True if the function body has a call to the materializedview method, or a function invoked within it does.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function HasMaterializedViewCall
         * @type boolean
         */
        HasMaterializedViewCall: boolean;
        /**
         * True if the function body has a call to the stored_query_result() method, or a function invoked within it does.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function HasStoredQueryResultCall
         * @type boolean
         */
        HasStoredQueryResultCall: boolean;
        /**
         * True if the function body has a call to the graph() method, or a function invoked within it does.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function HasGraphCall
         * @type boolean
         */
        HasGraphCall: boolean;
        /**
         * True if the function body has any interesting aspects.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.FunctionBodyFacts
         * @function IsInteresting
         * @type boolean
         */
        IsInteresting: boolean;
        /**
         * Returns a new {@link } with the specified values,
         if the specified values differ from the current values.
         *
         * @instance
         * @private
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {?number}                             flags                    
         * @param   {Kusto.Language.Utils.Optional$1}     nonVariableReturnType    
         * @param   {?boolean}                            hasSyntaxErrors          
         * @param   {Kusto.Language.Utils.Optional$1}     dependentParameters      
         * @param   {Kusto.Language.Utils.Optional$1}     unqualifiedTableNames
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        /**
         * Returns a {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {Kusto.Language.Symbols.TypeSymbol}    type
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithNonVariableReturnType(type: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {boolean}                             value
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithHasSyntaxErrors(value: boolean): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {System.Collections.Generic.IEnumerable$1}    list
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithDependentParameters(list: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Parameter> | null): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a {@link } with an additional dependent parameter.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {Kusto.Language.Symbols.Parameter}    parameter
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        AddDependentParameter(parameter: Kusto.Language.Symbols.Parameter | null): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a {@link } with an additional dependent parameter.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {System.Collections.Generic.IEnumerable$1}    parameters
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        AddDependentParameters(parameters: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Parameter> | null): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {System.Collections.Generic.IEnumerable$1}    names
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithUnqualifiedTableNames(names: System.Collections.Generic.IEnumerable$1<string> | null): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a {@link } with an additional unqualified table name.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {string}                              name
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        AddUnqualifiedTableName(name: string | null): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a new {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {boolean}                             value
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithHasClusterCall(value: boolean): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a new {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {boolean}                             value
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithHasDatabaseCall(value: boolean): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a new {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {boolean}                             value
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithHasUnqualifiedTableCall(value: boolean): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a new {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {boolean}                             value
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithHasQualifiedTableCall(value: boolean): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a new {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {boolean}                             value
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithHasExternalTableCall(value: boolean): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a new {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {boolean}                             value
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithHasMaterializedViewCall(value: boolean): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a new {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {boolean}                             value
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithHasStoredQueryResultCall(value: boolean): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a new {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {boolean}                             value
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithHasGraphCall(value: boolean): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a new {@link } with {@link } assigned.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {boolean}                             value
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        WithIsInteresting(value: boolean): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Returns a {@link } with the properties of the called function's facts combined with one.
         *
         * @instance
         * @public
         * @this Kusto.Language.FunctionBodyFacts
         * @memberof Kusto.Language.FunctionBodyFacts
         * @param   {Kusto.Language.FunctionBodyFacts}    facts
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        CombineCalledFunction(facts: Kusto.Language.FunctionBodyFacts | null): Kusto.Language.FunctionBodyFacts | null;
    }
    interface FunctionBodyFactsFunc extends Function {
        prototype: FunctionBodyFacts;
        Flags: FunctionBodyFacts.FlagsFunc;
        /**
         * The default {@link }.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.FunctionBodyFacts
         * @type Kusto.Language.FunctionBodyFacts
         */
        Default: Kusto.Language.FunctionBodyFacts | null;
    }
    var FunctionBodyFacts: FunctionBodyFactsFunc;
    module FunctionBodyFacts {
        interface Flags {
        }
        interface FlagsFunc extends Function {
            prototype: Flags;
            /**
             * The function body does not have any known special conditions.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 0
             * @type number
             */
            None: number;
            /**
             * The function body or any of its dependencies includes a call to the cluster() function.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 1
             * @type number
             */
            Cluster: number;
            /**
             * The function body or any of its dependencies includes a call to the database() function.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 2
             * @type number
             */
            Database: number;
            /**
             * The function body or any of its dependencies includes an unqualified call to the table() function.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 4
             * @type number
             */
            UnqualifiedTable: number;
            /**
             * The function body or any of its dependencies includes a qualified call to the table() function.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 8
             * @type number
             */
            QualifiedTable: number;
            /**
             * The function body or any of its dependencies includes a call to the external_table() function.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 16
             * @type number
             */
            ExternalTable: number;
            /**
             * The function body or any of its dependencies includes a call to the materialized_view() function.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 64
             * @type number
             */
            MaterializedView: number;
            /**
             * The function body or any of its dependencies includes a call to the stored_query_result() function
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 128
             * @type number
             */
            StoredQueryResult: number;
            /**
             * The function body or any of its dependencies includes a call to the graph() function
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 256
             * @type number
             */
            Graph: number;
        }
    }

    interface KustoFacts {
    }
    interface KustoFactsFunc extends Function {
        prototype: KustoFacts;
        new (): KustoFacts;
        /**
         * Types allowed for function parameters and columns.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoFacts
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        ParamTypes: System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * Extended type allowed in some schema declarations.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoFacts
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        ExtendedParamTypes: System.Collections.Generic.IReadOnlyList$1<string> | null;
        StorageTypes: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ChartTypes: System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * Chart types not shown in intellisense
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoFacts
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        HiddenChartTypes: System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * Char types shown in intellisense
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoFacts
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        VisibleChartTypes: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ChartProperties: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ChartKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ChartLegends: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ChartAxis: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ChartYSplit: System.Collections.Generic.IReadOnlyList$1<string> | null;
        HintDistributions: System.Collections.Generic.IReadOnlyList$1<string> | null;
        HintRemotes: System.Collections.Generic.IReadOnlyList$1<string> | null;
        HintStrategies: System.Collections.Generic.IReadOnlyList$1<string> | null;
        HintSpreads: System.Collections.Generic.IReadOnlyList$1<string> | null;
        HintConcurrencies: System.Collections.Generic.IReadOnlyList$1<string> | null;
        DistinctHintStrategies: System.Collections.Generic.IReadOnlyList$1<string> | null;
        EvaluateHintDistributions: System.Collections.Generic.IReadOnlyList$1<string> | null;
        EvaluateHintRemotes: System.Collections.Generic.IReadOnlyList$1<string> | null;
        JoinKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        GraphMarkComponentsKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        JoinHintRemotes: System.Collections.Generic.IReadOnlyList$1<string> | null;
        JoinHintStrategies: System.Collections.Generic.IReadOnlyList$1<string> | null;
        LookupKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        MakeSeriesKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        MvExpandKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        InlineExternalTableKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        InlineExternalTableDataFormats: System.Collections.Generic.IReadOnlyList$1<string> | null;
        InlineExternalTablePartitionColumnFunctions: System.Collections.Generic.IReadOnlyList$1<string> | null;
        PartitionHintConcurrencies: System.Collections.Generic.IReadOnlyList$1<string> | null;
        PartitionHintSpreads: System.Collections.Generic.IReadOnlyList$1<string> | null;
        PartitionHintStrategies: System.Collections.Generic.IReadOnlyList$1<string> | null;
        PartitionedGraphMakeHintStrategies: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ReduceByKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        SearchKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        SortHintStrategies: System.Collections.Generic.IReadOnlyList$1<string> | null;
        SummarizeHintStrategies: System.Collections.Generic.IReadOnlyList$1<string> | null;
        UnionWithSourceProperties: System.Collections.Generic.IReadOnlyList$1<string> | null;
        UnionKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        CyclesKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ShortestPathsOutputs: System.Collections.Generic.IReadOnlyList$1<string> | null;
        UnionHintConcurrencies: System.Collections.Generic.IReadOnlyList$1<string> | null;
        UnionHintSpreads: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ParseKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        DataScopeValues: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ScanKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ScanStepOutputValues: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ToScalarKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        ToTableKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        LimitExamples: System.Collections.Generic.IReadOnlyList$1<string> | null;
        TopExamples: System.Collections.Generic.IReadOnlyList$1<string> | null;
        AgoExamples: System.Collections.Generic.IReadOnlyList$1<string> | null;
        KnownInternalFunctionNames: System.Collections.Generic.IReadOnlyList$1<string> | null;
        DateTimeParts: System.Collections.Generic.IReadOnlyList$1<string> | null;
        DateDiffParts: System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * Directive names possibly supported by the client.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoFacts
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Directives: System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * Keywords that can be used as identifiers everywhere.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoFacts
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        KeywordsAsIdentifiers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxKind> | null;
        /**
         * Keywords that can be used as identifiers in some additional locations in queries.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoFacts
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        ExtendedKeywordsAsIdentifiers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxKind> | null;
        /**
         * Keywords that can be used as identifiers in some distinct locations in queries.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoFacts
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        SpecialKeywordsAsIdentifiers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxKind> | null;
        ForkOperatorKinds: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxKind> | null;
        /**
         * Query operators that can come after a pipe
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoFacts
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        PostPipeOperatorKinds: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxKind> | null;
        /**
         * The quote text at the start and end of a multi-line string.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoFacts
         * @default "```"
         * @type string
         */
        MultiLineStringQuote: string | null;
        /**
         * Alternate quote for multi-line strings, to be depreciated.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.KustoFacts
         * @default "~~~"
         * @type string
         */
        AlternateMultiLineStringQuote: string | null;
        KustoWindowsNet: string | null;
        KnownQueryOperatorParameterNames: System.Collections.Generic.IReadOnlyList$1<string> | null;
        UnionIsFuzzyProperty: string | null;
        /**
         * True if the query operator is on the right side of a pipe expression
         or is in a context that allows operators that would normally only appear
         on the right side of a pipe expression.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {Kusto.Language.Syntax.QueryOperator}    queryOp
         * @return  {boolean}
         */
        HasPipedInput(queryOp: Kusto.Language.Syntax.QueryOperator | null): boolean;
        /**
         * True if the text can be used as an identifier everywhere in the specified language dialect.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}                         text       
         * @param   {Kusto.Language.KustoDialect}    dialect
         * @return  {boolean}
         */
        CanBeIdentifier$1(text: string | null, dialect: Kusto.Language.KustoDialect): boolean;
        /**
         * True if the text can be used as an identifier everywhere in Kusto queries.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}     text
         * @return  {boolean}
         */
        CanBeIdentifier(text: string | null): boolean;
        /**
         * Adds bracketting and quoting to the name if it cannot be an identifier in the specified language dialect.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}                         name       
         * @param   {Kusto.Language.KustoDialect}    dialect
         * @return  {string}
         */
        BracketNameIfNecessary$1(name: string | null, dialect: Kusto.Language.KustoDialect): string | null;
        /**
         * Adds bracketting and quoting to the name if it cannot be an identifier everywhere in Kusto queries.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}    name
         * @return  {string}
         */
        BracketNameIfNecessary(name: string | null): string | null;
        /**
         * Convert name to bracketed form: name -&gt; ['name']
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}    name
         * @return  {string}
         */
        GetBracketedName(name: string | null): string | null;
        /**
         * Gets the single-quoted escaped string literal for the text,
         unless it contains a single quote, and then get the double-quoted escaped string literal.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}    text
         * @return  {string}
         */
        GetStringLiteral(text: string | null): string | null;
        /**
         * Gets the single-quoted escaped string literal for the text.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}    text
         * @return  {string}
         */
        GetSingleQuotedStringLiteral(text: string | null): string | null;
        /**
         * Gets the double-quoted escaped string literal for the text.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}    text
         * @return  {string}
         */
        GetDoubleQuotedStringLiteral(text: string | null): string | null;
        /**
         * Gets the multi-line quoted string literal for the text.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}    text
         * @return  {string}
         */
        GetMultiLineStringLiteral(text: string | null): string | null;
        /**
         * Gets the column name used for an expression in a projection.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {Kusto.Language.Syntax.Expression}      expr           
         * @param   {string}                                defaultName    
         * @param   {Kusto.Language.Symbols.TableSymbol}    rowScope
         * @return  {string}
         */
        GetExpressionResultName(expr: Kusto.Language.Syntax.Expression | null, defaultName?: string | null, rowScope?: Kusto.Language.Symbols.TableSymbol | null): string | null;
        /**
         * Gets the content value of a string literal
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}    literal
         * @return  {string}
         */
        GetStringLiteralValue(literal: string | null): string | null;
        /**
         * Returns true if the name matches the host name.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}     name        
         * @param   {string}     hostName
         * @return  {boolean}
         */
        IsHostName(name: string | null, hostName: string | null): boolean;
        /**
         * Gets the host name from a possible uri
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}    clusterUriOrName
         * @return  {string}
         */
        GetHostName(clusterUriOrName: string | null): string | null;
        /**
         * Gets the host and path names
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}           clusterUriOrName    
         * @param   {System.String}    host                
         * @param   {System.String}    path
         * @return  {void}
         */
        GetHostAndPath(clusterUriOrName: string | null, host: {v: string | null}, path: {v: string | null}): void;
        /**
         * Returns true if the character is a legal part of a host name or IP address.
         *
         * @static
         * @private
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {number}     ch
         * @return  {boolean}
         */
        /**
         * Gets the full name of a host given the short or full name.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}    hostname               
         * @param   {string}    defaultDomainSuffix
         * @return  {string}
         */
        GetFullHostName(hostname: string | null, defaultDomainSuffix: string | null): string | null;
        /**
         * Returns true if the hostname has a short name
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}     hostname               
         * @param   {string}     defaultDomainSuffix
         * @return  {boolean}
         */
        HasShortHostName(hostname: string | null, defaultDomainSuffix: string | null): boolean;
        /**
         * Returns true if the name is the short name of the host name.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}     name                   
         * @param   {string}     hostName               
         * @param   {string}     defaultDomainSuffix
         * @return  {boolean}
         */
        IsShortHostName(name: string | null, hostName: string | null, defaultDomainSuffix: string | null): boolean;
        /**
         * Returns true if the name is a possible short host name
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}     name
         * @return  {boolean}
         */
        IsPossibleShortHostName(name: string | null): boolean;
        /**
         * Gets the short name given the full host name, if one exists or null if no short name exists
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}    hostName               
         * @param   {string}    defaultDomainSuffix
         * @return  {string}
         */
        GetShortHostName(hostName: string | null, defaultDomainSuffix: string | null): string | null;
        /**
         * True if the text matches the pattern (*, xxx*, *xxx, *xxx*, xxx*yyy, *xxx*yyy*, ...)
         The * represents any zero-or-more characters.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {string}     pattern       
         * @param   {string}     text          
         * @param   {boolean}    ignoreCase
         * @return  {boolean}
         */
        Matches(pattern: string | null, text: string | null, ignoreCase?: boolean): boolean;
        /**
         * Attempts to determine the tabularity of an expression (scalar, tabular, none, unknown) given syntax.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {Kusto.Language.Syntax.Expression}     expression    
         * @param   {Kusto.Language.GlobalState}           globals
         * @return  {Kusto.Language.Symbols.Tabularity}
         */
        GetSyntaxTabularity(expression: Kusto.Language.Syntax.Expression | null, globals?: Kusto.Language.GlobalState | null): Kusto.Language.Symbols.Tabularity;
        /**
         * Attempts to determine the tabularity of a statement (scalar, tabular, none, unknown) given syntax.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {Kusto.Language.Syntax.Statement}      statement    
         * @param   {Kusto.Language.GlobalState}           globals
         * @return  {Kusto.Language.Symbols.Tabularity}
         */
        GetSyntaxTabularity$1(statement: Kusto.Language.Syntax.Statement | null, globals?: Kusto.Language.GlobalState | null): Kusto.Language.Symbols.Tabularity;
        /**
         * Attempts to determine the tabularity of a block of statements (scalar, tabular, none, unknown) given syntax.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {Kusto.Language.Syntax.SyntaxList$1}    statements    
         * @param   {Kusto.Language.GlobalState}            globals
         * @return  {Kusto.Language.Symbols.Tabularity}
         */
        GetSyntaxTabularity$2(statements: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Statement>> | null, globals?: Kusto.Language.GlobalState | null): Kusto.Language.Symbols.Tabularity;
        /**
         * Gets the scalar type for the literal syntax kind.
         *
         * @static
         * @public
         * @this Kusto.Language.KustoFacts
         * @memberof Kusto.Language.KustoFacts
         * @param   {Kusto.Language.Syntax.SyntaxKind}       kind
         * @return  {Kusto.Language.Symbols.ScalarSymbol}
         */
        GetLiteralType(kind: Kusto.Language.Syntax.SyntaxKind): Kusto.Language.Symbols.ScalarSymbol | null;
    }
    var KustoFacts: KustoFactsFunc;

    /**
     * Well known query options
     *
     * @public
     * @class Kusto.Language.Options
     */
    interface Options {
    }
    interface OptionsFunc extends Function {
        prototype: Options;
        new (): Options;
        BestEffort: Kusto.Language.Symbols.OptionSymbol | null;
        DebugPython: Kusto.Language.Symbols.OptionSymbol | null;
        DeferPartialQueryFailures: Kusto.Language.Symbols.OptionSymbol | null;
        DoNotImpersonate: Kusto.Language.Symbols.OptionSymbol | null;
        ErrorReportingPlacement: Kusto.Language.Symbols.OptionSymbol | null;
        MaterializedViewShuffleQuery: Kusto.Language.Symbols.OptionSymbol | null;
        MaxEntitiesToUnion: Kusto.Language.Symbols.OptionSymbol | null;
        MaxMemoryConsumptionPerIterator: Kusto.Language.Symbols.OptionSymbol | null;
        MaxMemoryConsumptionPerQueryPerNode: Kusto.Language.Symbols.OptionSymbol | null;
        MaxOutputColumns: Kusto.Language.Symbols.OptionSymbol | null;
        NoRequestTimeout: Kusto.Language.Symbols.OptionSymbol | null;
        NoTruncation: Kusto.Language.Symbols.OptionSymbol | null;
        ProgressiveProgressReportPeriod: Kusto.Language.Symbols.OptionSymbol | null;
        ProgressiveQueryMinRowCountPerUpdate: Kusto.Language.Symbols.OptionSymbol | null;
        PushSelectionThroughAggregation: Kusto.Language.Symbols.OptionSymbol | null;
        QueryBinAutoAt: Kusto.Language.Symbols.OptionSymbol | null;
        QueryBinAutoSize: Kusto.Language.Symbols.OptionSymbol | null;
        QueryCursorAfterDefault: Kusto.Language.Symbols.OptionSymbol | null;
        QueryCursorBeforeOrAtDefault: Kusto.Language.Symbols.OptionSymbol | null;
        QueryCursorCurrent: Kusto.Language.Symbols.OptionSymbol | null;
        QueryCursorDisabled: Kusto.Language.Symbols.OptionSymbol | null;
        QueryCursorScopedTables: Kusto.Language.Symbols.OptionSymbol | null;
        QueryDataScope: Kusto.Language.Symbols.OptionSymbol | null;
        QueryDateTimeScopeColumn: Kusto.Language.Symbols.OptionSymbol | null;
        QueryDateTimeScopeFrom: Kusto.Language.Symbols.OptionSymbol | null;
        QueryDateTimeScopeTo: Kusto.Language.Symbols.OptionSymbol | null;
        QueryDistributionNodesSpanSize: Kusto.Language.Symbols.OptionSymbol | null;
        QueryFanoutNodesPercent: Kusto.Language.Symbols.OptionSymbol | null;
        QueryFanoutThreadsPercent: Kusto.Language.Symbols.OptionSymbol | null;
        QueryForceRowLevelSecurity: Kusto.Language.Symbols.OptionSymbol | null;
        QueryLanguage: Kusto.Language.Symbols.OptionSymbol | null;
        QueryLogQueryParameters: Kusto.Language.Symbols.OptionSymbol | null;
        QueryNow: Kusto.Language.Symbols.OptionSymbol | null;
        QueryResultsApplyGetSchema: Kusto.Language.Symbols.OptionSymbol | null;
        QueryResultsCacheForceRefresh: Kusto.Language.Symbols.OptionSymbol | null;
        QueryResultsCacheMaxAge: Kusto.Language.Symbols.OptionSymbol | null;
        QueryResultsCachePerShardEnabled: Kusto.Language.Symbols.OptionSymbol | null;
        QueryWeakConsistencySessionId: Kusto.Language.Symbols.OptionSymbol | null;
        RequestAppName: Kusto.Language.Symbols.OptionSymbol | null;
        RequestBlockRowLevelSecurity: Kusto.Language.Symbols.OptionSymbol | null;
        RequestCalloutDisabled: Kusto.Language.Symbols.OptionSymbol | null;
        RequestCrossClusterToken: Kusto.Language.Symbols.OptionSymbol | null;
        RequestDescription: Kusto.Language.Symbols.OptionSymbol | null;
        RequestExternalDataDisabled: Kusto.Language.Symbols.OptionSymbol | null;
        RequestExternalTableDisabled: Kusto.Language.Symbols.OptionSymbol | null;
        RequestReadOnly: Kusto.Language.Symbols.OptionSymbol | null;
        RequestReadOnlyHardline: Kusto.Language.Symbols.OptionSymbol | null;
        RequestRemoteEntitiesDisabled: Kusto.Language.Symbols.OptionSymbol | null;
        RequestSandboxedExecutionDisabled: Kusto.Language.Symbols.OptionSymbol | null;
        RequestUser: Kusto.Language.Symbols.OptionSymbol | null;
        ResultsProgressiveEnabled: Kusto.Language.Symbols.OptionSymbol | null;
        ResultsV2NewlinesBetweenFrames: Kusto.Language.Symbols.OptionSymbol | null;
        ServerTimeout: Kusto.Language.Symbols.OptionSymbol | null;
        TakeMaxRecords: Kusto.Language.Symbols.OptionSymbol | null;
        TruncationMaxRecords: Kusto.Language.Symbols.OptionSymbol | null;
        TruncationMaxSize: Kusto.Language.Symbols.OptionSymbol | null;
        V2FragmentPrimaryTables: Kusto.Language.Symbols.OptionSymbol | null;
        ValidatePermissions: Kusto.Language.Symbols.OptionSymbol | null;
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.OptionSymbol> | null;
    }
    var Options: OptionsFunc;

    interface ParseOptions extends System.IEquatable$1<Kusto.Language.ParseOptions> {
        /**
         * Determines whether the token parser will always include an end token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.ParseOptions
         * @function AlwaysProduceEndToken
         * @type boolean
         */
        AlwaysProduceEndToken: boolean;
        /**
         * Determines whether parenthesized literals like datetime(...) are allowed to 
         contain line breaks.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.ParseOptions
         * @function AllowLiteralsWithLineBreaks
         * @type boolean
         */
        AllowLiteralsWithLineBreaks: boolean;
        /**
         * Determines whether the parser allows parts of wildcarded name to be non-adjacent.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.ParseOptions
         * @function AllowNonAdjacentWildcardParts
         * @type boolean
         */
        AllowNonAdjacentWildcardParts: boolean;
        /**
         * Determines which kind of parser to use.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.ParseOptions
         * @function ParserKind
         * @type Kusto.Language.ParserKind
         */
        ParserKind: Kusto.Language.ParserKind;
        /**
         * Returns {@link } with the {@link } property set to specified value.
         *
         * @instance
         * @public
         * @this Kusto.Language.ParseOptions
         * @memberof Kusto.Language.ParseOptions
         * @param   {boolean}                        alwaysProduceEndTokens
         * @return  {Kusto.Language.ParseOptions}
         */
        WithAlwaysProduceEndTokens(alwaysProduceEndTokens: boolean): Kusto.Language.ParseOptions | null;
        /**
         * Returns {@link } with the {@link } property set to specified value.
         *
         * @instance
         * @public
         * @this Kusto.Language.ParseOptions
         * @memberof Kusto.Language.ParseOptions
         * @param   {boolean}                        allow
         * @return  {Kusto.Language.ParseOptions}
         */
        WithAllowLiteralsWithLineBreaks(allow: boolean): Kusto.Language.ParseOptions | null;
        /**
         * Returns {@link } with the {@link } property set to specified value.
         *
         * @instance
         * @public
         * @this Kusto.Language.ParseOptions
         * @memberof Kusto.Language.ParseOptions
         * @param   {boolean}                        allow
         * @return  {Kusto.Language.ParseOptions}
         */
        WithAllowNonAdjacentWildcardParts(allow: boolean): Kusto.Language.ParseOptions | null;
        /**
         * Returns {@link } with the {@link } property set to specified value.
         *
         * @instance
         * @public
         * @this Kusto.Language.ParseOptions
         * @memberof Kusto.Language.ParseOptions
         * @param   {Kusto.Language.ParserKind}      kind
         * @return  {Kusto.Language.ParseOptions}
         */
        WithParserKind(kind: Kusto.Language.ParserKind): Kusto.Language.ParseOptions | null;
        equalsT(other: Kusto.Language.ParseOptions | null): boolean;
        EqualExceptForParseKind(other: Kusto.Language.ParseOptions | null): boolean;
    }
    interface ParseOptionsFunc extends Function {
        prototype: ParseOptions;
        /**
         * Default parse options.
         *
         * @static
         * @public
         * @memberof Kusto.Language.ParseOptions
         * @type Kusto.Language.ParseOptions
         */
        Default: Kusto.Language.ParseOptions | null;
    }
    var ParseOptions: ParseOptionsFunc;

    enum ParserKind {
        Grammar = 0,
        Default = 1
    }

    /**
     * Describes a parameter that a query operator may have.
     *
     * @public
     * @class Kusto.Language.QueryOperatorParameter
     * @augments Kusto.Language.Symbols.Symbol
     */
    interface QueryOperatorParameter extends Kusto.Language.Symbols.Symbol {
        /**
         * The kind that the value can take.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.QueryOperatorParameter
         * @function ValueKind
         * @type Kusto.Language.QueryOperatorParameterValueKind
         */
        ValueKind: Kusto.Language.QueryOperatorParameterValueKind;
        /**
         * True if token/keyword value matches are case sensitive.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.QueryOperatorParameter
         * @function IsCaseSensitive
         * @type boolean
         */
        IsCaseSensitive: boolean;
        /**
         * The set of known parameter values.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.QueryOperatorParameter
         * @function Values
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Values: System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * True if the parameter can be specified more than once.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.QueryOperatorParameter
         * @function IsRepeatable
         * @type boolean
         */
        IsRepeatable: boolean;
        /**
         * True if the parameter is typed with no equals token between the name and value
         *
         * @instance
         * @public
         * @memberof Kusto.Language.QueryOperatorParameter
         * @function HasNoEquals
         * @type boolean
         */
        HasNoEquals: boolean;
        /**
         * Any additional names that the parameter can be referenced by.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.QueryOperatorParameter
         * @function Aliases
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Aliases: System.Collections.Generic.IReadOnlyList$1<string> | null;
        IsHidden: boolean;
        Kind: Kusto.Language.Symbols.SymbolKind;
        WithIsHidden(isHidden: boolean): Kusto.Language.QueryOperatorParameter | null;
        WithValues(values: System.Collections.Generic.IReadOnlyList$1<string> | null): Kusto.Language.QueryOperatorParameter | null;
        WithIsCaseSensitive(isCaseSensitive: boolean): Kusto.Language.QueryOperatorParameter | null;
        WithHasNoEquals(hasNoEquals: boolean): Kusto.Language.QueryOperatorParameter | null;
        Hide(): Kusto.Language.QueryOperatorParameter | null;
    }
    interface QueryOperatorParameterFunc extends Function {
        prototype: QueryOperatorParameter;
        $ctor1: {
            new (name: string | null, kind: Kusto.Language.QueryOperatorParameterValueKind, isCaseSensitive: boolean, values: System.Collections.Generic.IEnumerable$1<string> | null, isRepeatable: boolean, aliases: System.Collections.Generic.IReadOnlyList$1<string> | null): QueryOperatorParameter
        };
    }
    var QueryOperatorParameter: QueryOperatorParameterFunc;

    /**
     * Well known plugins.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.PlugIns
     */
    interface PlugIns {
    }
    interface PlugInsFunc extends Function {
        prototype: PlugIns;
        new (): PlugIns;
        ActiveUseCounts: Kusto.Language.Symbols.FunctionSymbol | null;
        ActivityCountsMetrics: Kusto.Language.Symbols.FunctionSymbol | null;
        ActivityEngagement: Kusto.Language.Symbols.FunctionSymbol | null;
        ActivityMetrics: Kusto.Language.Symbols.FunctionSymbol | null;
        NewActivityMetrics: Kusto.Language.Symbols.FunctionSymbol | null;
        AutoClusterColumns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        AutoCluster: Kusto.Language.Symbols.FunctionSymbol | null;
        BagUnpack: Kusto.Language.Symbols.FunctionSymbol | null;
        BasketColumns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        Basket: Kusto.Language.Symbols.FunctionSymbol | null;
        DCountIntersect: Kusto.Language.Symbols.FunctionSymbol | null;
        DiffPatternsColumns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        DiffPatterns: Kusto.Language.Symbols.FunctionSymbol | null;
        EstimateRowsCount: Kusto.Language.Symbols.FunctionSymbol | null;
        ExecuteShowCommand: Kusto.Language.Symbols.FunctionSymbol | null;
        ExecuteQuery: Kusto.Language.Symbols.FunctionSymbol | null;
        ExternalDatatable: Kusto.Language.Symbols.FunctionSymbol | null;
        FunnelSequence: Kusto.Language.Symbols.FunctionSymbol | null;
        FunnelSequenceCompletion: Kusto.Language.Symbols.FunctionSymbol | null;
        HttpRequestColumns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        HttpRequest: Kusto.Language.Symbols.FunctionSymbol | null;
        HttpRequestPost: Kusto.Language.Symbols.FunctionSymbol | null;
        AIEmbedText_Deprecated: Kusto.Language.Symbols.FunctionSymbol | null;
        AIEmbeddings: Kusto.Language.Symbols.FunctionSymbol | null;
        AIChatCompletion: Kusto.Language.Symbols.FunctionSymbol | null;
        AIChatCompletionPrompt: Kusto.Language.Symbols.FunctionSymbol | null;
        Identity: Kusto.Language.Symbols.FunctionSymbol | null;
        IdentityV3: Kusto.Language.Symbols.FunctionSymbol | null;
        InferStorageSchema: Kusto.Language.Symbols.FunctionSymbol | null;
        InferStorageSchemaWithSuggestions: Kusto.Language.Symbols.FunctionSymbol | null;
        Geo_Polygon_Lookup: Kusto.Language.Symbols.FunctionSymbol | null;
        Geo_Line_Lookup: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv4_Lookup: Kusto.Language.Symbols.FunctionSymbol | null;
        Ipv6_Lookup: Kusto.Language.Symbols.FunctionSymbol | null;
        SchemaMerge: Kusto.Language.Symbols.FunctionSymbol | null;
        NarrowColumns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        Narrow: Kusto.Language.Symbols.FunctionSymbol | null;
        Pivot: Kusto.Language.Symbols.FunctionSymbol | null;
        Preview: Kusto.Language.Symbols.FunctionSymbol | null;
        CSharp: Kusto.Language.Symbols.FunctionSymbol | null;
        Python: Kusto.Language.Symbols.FunctionSymbol | null;
        R: Kusto.Language.Symbols.FunctionSymbol | null;
        RollingPercentile: Kusto.Language.Symbols.FunctionSymbol | null;
        RowsNear: Kusto.Language.Symbols.FunctionSymbol | null;
        SessionCount: Kusto.Language.Symbols.FunctionSymbol | null;
        SequenceDetect: Kusto.Language.Symbols.FunctionSymbol | null;
        SlidingWindowCounts: Kusto.Language.Symbols.FunctionSymbol | null;
        SqlRequest: Kusto.Language.Symbols.FunctionSymbol | null;
        MySqlRequest: Kusto.Language.Symbols.FunctionSymbol | null;
        PostgreSqlRequest: Kusto.Language.Symbols.FunctionSymbol | null;
        CosmosdbSqlRequest: Kusto.Language.Symbols.FunctionSymbol | null;
        AzureDigitalTwinsQueryRequest: Kusto.Language.Symbols.FunctionSymbol | null;
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.FunctionSymbol> | null;
        /**
         * Gets the plug-in function given the name, or null if no plug-in is defined with the specified name.
         *
         * @static
         * @public
         * @this Kusto.Language.PlugIns
         * @memberof Kusto.Language.PlugIns
         * @param   {string}                                   name
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        GetPlugIn(name: string | null): Kusto.Language.Symbols.FunctionSymbol | null;
    }
    var PlugIns: PlugInsFunc;

    /**
     * The set of predefined {@link }.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Properties
     */
    interface Properties {
    }
    interface PropertiesFunc extends Function {
        prototype: Properties;
        new (): Properties;
        /**
         * This property is true client parameters are allowed.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Properties
         * @type Kusto.Language.GlobalStateProperty$1
         */
        AllowClientParameters: Kusto.Language.GlobalStateProperty$1<boolean> | null;
        /**
         * The maximum text size allowed by the parser.
          If this text size is exceeded the text will not be parsed.
          Intellisense only.
          This limit is used to improve typing speed for large queries.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Properties
         * @type Kusto.Language.GlobalStateProperty$1
         */
        MaxParseTextSize: Kusto.Language.GlobalStateProperty$1<number> | null;
        /**
         * The maximum depth allowed for syntax trees to be analyzed.
         If this limit is exceeded semantic anaysis will not be performed.
         This limit is used to prevent stack overflow.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Properties
         * @type Kusto.Language.GlobalStateProperty$1
         */
        MaxAnalysisDepth: Kusto.Language.GlobalStateProperty$1<number> | null;
        /**
         * The maxmimum number of cached expansions per database function.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Properties
         * @type Kusto.Language.GlobalStateProperty$1
         */
        MaxCachedExpansions: Kusto.Language.GlobalStateProperty$1<number> | null;
        /**
         * The maximum number of cache result types per database function.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Properties
         * @type Kusto.Language.GlobalStateProperty$1
         */
        MaxCachedResultTypes: Kusto.Language.GlobalStateProperty$1<number> | null;
    }
    var Properties: PropertiesFunc;

    interface GlobalStateProperty$1<T> extends Kusto.Language.GlobalStateProperty {
        DefaultValue: T;
    }
    interface GlobalStateProperty$1Func extends Function {
        <T>($T: Bridge.TypeRef<T>): {
            prototype: GlobalStateProperty$1<T>;
            new (name: string | null, defaultValue: T): GlobalStateProperty$1<T>;
        }
    }
    var GlobalStateProperty$1: GlobalStateProperty$1Func;

    /**
     * Known parameters for specific query operators or expressions
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.QueryOperatorParameters
     */
    interface QueryOperatorParameters {
    }
    interface QueryOperatorParametersFunc extends Function {
        prototype: QueryOperatorParameters;
        new (): QueryOperatorParameters;
        BagExpansion: Kusto.Language.QueryOperatorParameter | null;
        BinLegacy: Kusto.Language.QueryOperatorParameter | null;
        CrossCluster: Kusto.Language.QueryOperatorParameter | null;
        CrossDB: Kusto.Language.QueryOperatorParameter | null;
        DecodeBlocks: Kusto.Language.QueryOperatorParameter | null;
        ExpandOutput: Kusto.Language.QueryOperatorParameter | null;
        Flags: Kusto.Language.QueryOperatorParameter | null;
        HintDotConcurrency: Kusto.Language.QueryOperatorParameter | null;
        HintDotDistribution: Kusto.Language.QueryOperatorParameter | null;
        HintDotMaterialized: Kusto.Language.QueryOperatorParameter | null;
        HintDotNumPartitions: Kusto.Language.QueryOperatorParameter | null;
        HintDotPassFilters: Kusto.Language.QueryOperatorParameter | null;
        HintDotPassFiltersColumn: Kusto.Language.QueryOperatorParameter | null;
        HintDotProgressiveTop: Kusto.Language.QueryOperatorParameter | null;
        HintDotRemote: Kusto.Language.QueryOperatorParameter | null;
        HintDotShuffleKey: Kusto.Language.QueryOperatorParameter | null;
        HintDotSpread: Kusto.Language.QueryOperatorParameter | null;
        HintDotStrategy: Kusto.Language.QueryOperatorParameter | null;
        Id: Kusto.Language.QueryOperatorParameter | null;
        IsFuzzy: Kusto.Language.QueryOperatorParameter | null;
        BestEffort: Kusto.Language.QueryOperatorParameter | null;
        Kind: Kusto.Language.QueryOperatorParameter | null;
        Output: Kusto.Language.QueryOperatorParameter | null;
        WithComponentId: Kusto.Language.QueryOperatorParameter | null;
        NoWithSource: Kusto.Language.QueryOperatorParameter | null;
        PackedColumn: Kusto.Language.QueryOperatorParameter | null;
        SourceColumnIndex: Kusto.Language.QueryOperatorParameter | null;
        WithMatchId: Kusto.Language.QueryOperatorParameter | null;
        WithItemIndex: Kusto.Language.QueryOperatorParameter | null;
        WithSource: Kusto.Language.QueryOperatorParameter | null;
        WithStepName: Kusto.Language.QueryOperatorParameter | null;
        ForceRemote: Kusto.Language.QueryOperatorParameter | null;
        Cycles: Kusto.Language.QueryOperatorParameter | null;
        ShortestPathsOutputs: Kusto.Language.QueryOperatorParameter | null;
        ManagedIdentityAuthEnabled: Kusto.Language.QueryOperatorParameter | null;
        /**
         * All query operator parameters.
         Does not include parameters used for other syntax clauses (like render with properties)
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.QueryOperatorParameters
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        AllParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        AsParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        ConsumeParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        DataTableParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        DistinctParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        EvaluateParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        ExternalDataWithClauseProperties: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        InlineExternalTableProperties: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        FilterParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        FindParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        GraphMatchParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        GraphShortestPathsParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        RestrictStatementParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        JoinParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        GraphMarkComponentsParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        LookupParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        MakeSeriesParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        MvApplyParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        MvExpandParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        ParseParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        ParseKvWithProperties: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        PartitionByParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        PartitionParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        ReduceParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        ReduceWithParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        WithSourceId: Kusto.Language.QueryOperatorParameter | null;
        WithTargetId: Kusto.Language.QueryOperatorParameter | null;
        WithNodeId: Kusto.Language.QueryOperatorParameter | null;
        GraphToTableEdgesParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        GraphToTableNodesParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        GraphMakeParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        RenderKind: Kusto.Language.QueryOperatorParameter | null;
        RenderTitle: Kusto.Language.QueryOperatorParameter | null;
        RenderAccumulate: Kusto.Language.QueryOperatorParameter | null;
        RenderWithDeprecated: Kusto.Language.QueryOperatorParameter | null;
        RenderByDeprecated: Kusto.Language.QueryOperatorParameter | null;
        RenderParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        RenderWithProperties: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        SampleParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        SampleDistinctParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        ScanParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        SearchParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        SerializedParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        SortParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        SummarizeParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        TakeParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        TopParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        ToScalarKindParameter: Kusto.Language.QueryOperatorParameter | null;
        ToTableKindParameter: Kusto.Language.QueryOperatorParameter | null;
        UnionParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        MacroExpandParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.QueryOperatorParameter> | null;
        GetSchemaKind: Kusto.Language.QueryOperatorParameter | null;
    }
    var QueryOperatorParameters: QueryOperatorParametersFunc;

    enum QueryOperatorParameterValueKind {
        Any = 0,
        ScalarLiteral = 1,
        IntegerLiteral = 2,
        NumericLiteral = 3,
        ForcedRealLiteral = 4,
        StringLiteral = 5,
        BoolLiteral = 6,
        SummableLiteral = 7,
        String = 8,
        Word = 9,
        WordOrNumber = 10,
        NameDeclaration = 11,
        Column = 12,
        ColumnList = 13
    }

    /**
     * The kinds of servers that can be connected to.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.ServerKinds
     */
    interface ServerKinds {
    }
    interface ServerKindsFunc extends Function {
        prototype: ServerKinds;
        new (): ServerKinds;
        Engine: string | null;
        DataManager: string | null;
        ClusterManager: string | null;
        AriaBridge: string | null;
    }
    var ServerKinds: ServerKindsFunc;

    /**
     * A {@link } that represents the evaluated body of the function called,
     as if it were expanded inline at the location of the call with the arguments and local variables in scope considered.
     *
     * @class Kusto.Language.FunctionCallExpansion
     * @augments Kusto.Language.Syntax.SyntaxTree
     */
    interface FunctionCallExpansion extends Kusto.Language.Syntax.SyntaxTree {
    }
    interface FunctionCallExpansionFunc extends Function {
        prototype: FunctionCallExpansion;
        new (root: Kusto.Language.Syntax.SyntaxNode | null, original: Kusto.Language.Syntax.SyntaxTree | null, offsetInOriginal: number): FunctionCallExpansion;
    }
    var FunctionCallExpansion: FunctionCallExpansionFunc;

    /**
     * Built-in scalar math-like operators
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Operators
     */
    interface Operators {
    }
    interface OperatorsFunc extends Function {
        prototype: Operators;
        new (): Operators;
        UnaryMinus: Kusto.Language.Symbols.OperatorSymbol | null;
        UnaryPlus: Kusto.Language.Symbols.OperatorSymbol | null;
        And: Kusto.Language.Symbols.OperatorSymbol | null;
        Or: Kusto.Language.Symbols.OperatorSymbol | null;
        Add: Kusto.Language.Symbols.OperatorSymbol | null;
        Subtract: Kusto.Language.Symbols.OperatorSymbol | null;
        Multiply: Kusto.Language.Symbols.OperatorSymbol | null;
        Divide: Kusto.Language.Symbols.OperatorSymbol | null;
        Modulo: Kusto.Language.Symbols.OperatorSymbol | null;
        LessThan: Kusto.Language.Symbols.OperatorSymbol | null;
        LessThanOrEqual: Kusto.Language.Symbols.OperatorSymbol | null;
        GreaterThan: Kusto.Language.Symbols.OperatorSymbol | null;
        GreaterThanOrEqual: Kusto.Language.Symbols.OperatorSymbol | null;
        Equal: Kusto.Language.Symbols.OperatorSymbol | null;
        NotEqual: Kusto.Language.Symbols.OperatorSymbol | null;
        EqualTilde: Kusto.Language.Symbols.OperatorSymbol | null;
        BangTilde: Kusto.Language.Symbols.OperatorSymbol | null;
        Has: Kusto.Language.Symbols.OperatorSymbol | null;
        HasCs: Kusto.Language.Symbols.OperatorSymbol | null;
        NotHas: Kusto.Language.Symbols.OperatorSymbol | null;
        NotHasCs: Kusto.Language.Symbols.OperatorSymbol | null;
        HasPrefix: Kusto.Language.Symbols.OperatorSymbol | null;
        HasPrefixCs: Kusto.Language.Symbols.OperatorSymbol | null;
        NotHasPrefix: Kusto.Language.Symbols.OperatorSymbol | null;
        NotHasPrefixCs: Kusto.Language.Symbols.OperatorSymbol | null;
        HasSuffix: Kusto.Language.Symbols.OperatorSymbol | null;
        HasSuffixCs: Kusto.Language.Symbols.OperatorSymbol | null;
        NotHasSuffix: Kusto.Language.Symbols.OperatorSymbol | null;
        NotHasSuffixCs: Kusto.Language.Symbols.OperatorSymbol | null;
        Like: Kusto.Language.Symbols.OperatorSymbol | null;
        LikeCs: Kusto.Language.Symbols.OperatorSymbol | null;
        NotLike: Kusto.Language.Symbols.OperatorSymbol | null;
        NotLikeCs: Kusto.Language.Symbols.OperatorSymbol | null;
        Contains: Kusto.Language.Symbols.OperatorSymbol | null;
        ContainsCs: Kusto.Language.Symbols.OperatorSymbol | null;
        NotContains: Kusto.Language.Symbols.OperatorSymbol | null;
        NotContainsCs: Kusto.Language.Symbols.OperatorSymbol | null;
        StartsWith: Kusto.Language.Symbols.OperatorSymbol | null;
        StartsWithCs: Kusto.Language.Symbols.OperatorSymbol | null;
        NotStartsWith: Kusto.Language.Symbols.OperatorSymbol | null;
        NotStartsWithCs: Kusto.Language.Symbols.OperatorSymbol | null;
        EndsWith: Kusto.Language.Symbols.OperatorSymbol | null;
        EndsWithCs: Kusto.Language.Symbols.OperatorSymbol | null;
        NotEndsWith: Kusto.Language.Symbols.OperatorSymbol | null;
        NotEndsWithCs: Kusto.Language.Symbols.OperatorSymbol | null;
        MatchRegex: Kusto.Language.Symbols.OperatorSymbol | null;
        Search: Kusto.Language.Symbols.OperatorSymbol | null;
        In: Kusto.Language.Symbols.OperatorSymbol | null;
        HasAny: Kusto.Language.Symbols.OperatorSymbol | null;
        HasAll: Kusto.Language.Symbols.OperatorSymbol | null;
        InCs: Kusto.Language.Symbols.OperatorSymbol | null;
        NotIn: Kusto.Language.Symbols.OperatorSymbol | null;
        NotInCs: Kusto.Language.Symbols.OperatorSymbol | null;
        Between: Kusto.Language.Symbols.OperatorSymbol | null;
        NotBetween: Kusto.Language.Symbols.OperatorSymbol | null;
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.OperatorSymbol> | null;
    }
    var Operators: OperatorsFunc;

    interface EngineCommands {
    }
    interface EngineCommandsFunc extends Function {
        prototype: EngineCommands;
        new (): EngineCommands;
        ShowDatabase: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseDetails: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseIdentity: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicies: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseDataStats: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseMetadata: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterDatabases: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterDatabasesDetails: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterDatabasesIdentity: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterDatabasesPolicies: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterDatabasesDataStats: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterDatabasesMetadata: Kusto.Language.Symbols.CommandSymbol | null;
        CreateDatabase: Kusto.Language.Symbols.CommandSymbol | null;
        AttachDatabase: Kusto.Language.Symbols.CommandSymbol | null;
        DetachDatabase: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePrettyName: Kusto.Language.Symbols.CommandSymbol | null;
        DropDatabasePrettyName: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePersistMetadata: Kusto.Language.Symbols.CommandSymbol | null;
        SetAccess: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseSchema: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseSchemaAsJson: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseSchemaAsCslScript: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseCslSchema: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseSchemaViolations: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasesSchema: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasesSchemaAsJson: Kusto.Language.Symbols.CommandSymbol | null;
        CreateDatabaseIngestionMapping: Kusto.Language.Symbols.CommandSymbol | null;
        CreateOrAlterDatabaseIngestionMapping: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabaseIngestionMapping: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeDatabaseIngestionMapping: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseIngestionMappings: Kusto.Language.Symbols.CommandSymbol | null;
        ShowIngestionMappings: Kusto.Language.Symbols.CommandSymbol | null;
        DropDatabaseIngestionMapping: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTables: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTable: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablesDetails: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableDetails: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableCslSchema: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableSchemaAsJson: Kusto.Language.Symbols.CommandSymbol | null;
        CreateTable: Kusto.Language.Symbols.CommandSymbol | null;
        CreateTableBasedOnAnother: Kusto.Language.Symbols.CommandSymbol | null;
        CreateMergeTable: Kusto.Language.Symbols.CommandSymbol | null;
        DefineTable: Kusto.Language.Symbols.CommandSymbol | null;
        CreateTables: Kusto.Language.Symbols.CommandSymbol | null;
        CreateMergeTables: Kusto.Language.Symbols.CommandSymbol | null;
        DefineTables: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTable: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTable: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableDocString: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableFolder: Kusto.Language.Symbols.CommandSymbol | null;
        RenameTable: Kusto.Language.Symbols.CommandSymbol | null;
        RenameTables: Kusto.Language.Symbols.CommandSymbol | null;
        UndoDropExtentContainer: Kusto.Language.Symbols.CommandSymbol | null;
        DropTable: Kusto.Language.Symbols.CommandSymbol | null;
        UndoDropTable: Kusto.Language.Symbols.CommandSymbol | null;
        DropTables: Kusto.Language.Symbols.CommandSymbol | null;
        CreateTableIngestionMapping: Kusto.Language.Symbols.CommandSymbol | null;
        CreateOrAlterTableIngestionMapping: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableIngestionMapping: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTableIngestionMapping: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableIngestionMappings: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableIngestionMapping: Kusto.Language.Symbols.CommandSymbol | null;
        DropTableIngestionMapping: Kusto.Language.Symbols.CommandSymbol | null;
        RenameColumn: Kusto.Language.Symbols.CommandSymbol | null;
        RenameColumns: Kusto.Language.Symbols.CommandSymbol | null;
        AlterColumnType: Kusto.Language.Symbols.CommandSymbol | null;
        DropColumn: Kusto.Language.Symbols.CommandSymbol | null;
        DropTableColumns: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableColumnDocStrings: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTableColumnDocStrings: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFunctions: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFunction: Kusto.Language.Symbols.CommandSymbol | null;
        CreateFunction: Kusto.Language.Symbols.CommandSymbol | null;
        AlterFunction: Kusto.Language.Symbols.CommandSymbol | null;
        CreateOrAlterFunction: Kusto.Language.Symbols.CommandSymbol | null;
        DropFunction: Kusto.Language.Symbols.CommandSymbol | null;
        DropFunctions: Kusto.Language.Symbols.CommandSymbol | null;
        AlterFunctionDocString: Kusto.Language.Symbols.CommandSymbol | null;
        AlterFunctionFolder: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTables: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTable: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTablesDetails: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTableDetails: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTableCslSchema: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTableSchema: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTableArtifacts: Kusto.Language.Symbols.CommandSymbol | null;
        DropExternalTable: Kusto.Language.Symbols.CommandSymbol | null;
        CreateStorageExternalTable: Kusto.Language.Symbols.CommandSymbol | null;
        AlterStorageExternalTable: Kusto.Language.Symbols.CommandSymbol | null;
        CreateOrAlterStorageExternalTable: Kusto.Language.Symbols.CommandSymbol | null;
        CreateSqlExternalTable: Kusto.Language.Symbols.CommandSymbol | null;
        AlterSqlExternalTable: Kusto.Language.Symbols.CommandSymbol | null;
        CreateOrAlterSqlExternalTable: Kusto.Language.Symbols.CommandSymbol | null;
        CreateExternalTableMapping: Kusto.Language.Symbols.CommandSymbol | null;
        SetExternalTableAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        AddExternalTableAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        DropExternalTableAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        AlterExternalTableDocString: Kusto.Language.Symbols.CommandSymbol | null;
        AlterExternalTableFolder: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTablePrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFabric: Kusto.Language.Symbols.CommandSymbol | null;
        AlterExternalTableMapping: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTableMappings: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTableMapping: Kusto.Language.Symbols.CommandSymbol | null;
        DropExternalTableMapping: Kusto.Language.Symbols.CommandSymbol | null;
        ShowWorkloadGroups: Kusto.Language.Symbols.CommandSymbol | null;
        ShowWorkloadGroup: Kusto.Language.Symbols.CommandSymbol | null;
        CreateOrAleterWorkloadGroup: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeWorkloadGroup: Kusto.Language.Symbols.CommandSymbol | null;
        DropWorkloadGroup: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowColumnPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowGraphModelPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowGraphModelStarPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablesPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterColumnPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMaterializedViewPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterGraphModelPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteDatabasePolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteColumnPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteMaterializedViewPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteGraphModelPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteClusterPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyIngestionTime: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyIngestionTime: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyIngestionTime: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablesPolicyIngestionTime: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyIngestionTime: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        ShowGraphPolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        ShowGraphStarPolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMaterializedViewPolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        AlterGraphModelPolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablesPolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTablePolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeMaterializedViewPolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeDatabasePolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteDatabasePolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicyHardRetentionViolations: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicySoftRetentionViolations: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyRowLevelSecurity: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyRowLevelSecurity: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyRowLevelSecurity: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyRowLevelSecurity: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewPolicyRowLevelSecurity: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMaterializedViewPolicyRowLevelSecurity: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteMaterializedViewPolicyRowLevelSecurity: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyRowOrder: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyRowOrder: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyRowOrder: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablesPolicyRowOrder: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTablePolicyRowOrder: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyRowOrder: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyUpdate: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyUpdate: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyUpdate: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTablePolicyUpdate: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyUpdate: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeClusterPolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeDatabasePolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTablePolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablesPolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteDatabasePolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyIngestionBatching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        ShowColumnPolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableColumnsPolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterColumnPolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterColumnsPolicyEncodingByQuery: Kusto.Language.Symbols.CommandSymbol | null;
        AlterColumnPolicyEncodingType: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeDatabasePolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTablePolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeColumnPolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteDatabasePolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteColumnPolicyEncoding: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablesPolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeDatabasePolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTablePolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeMaterializedViewPolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteDatabasePolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTablePolicyQueryAcceleration: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTablesPolicyQueryAcceleration: Kusto.Language.Symbols.CommandSymbol | null;
        AlterExternalTablePolicyQueryAcceleration: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeExternalTablePolicyQueryAcceleration: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteExternalTablePolicyQueryAcceleration: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTableQueryAccelerationStatatistics: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTablesQueryAccelerationStatatistics: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyMirroring: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTablePolicyMirroring: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyMirroringWithJson: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTablePolicyMirroringWithJson: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyMirroring: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyMirroring: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyMirroring: Kusto.Language.Symbols.CommandSymbol | null;
        CreateMirroringTemplate: Kusto.Language.Symbols.CommandSymbol | null;
        CreateOrAlterMirroringTemplate: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMirroringTemplate: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeMirroringTemplate: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteMirroringTemplate: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMirroringTemplate: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMirroringTemplates: Kusto.Language.Symbols.CommandSymbol | null;
        ApplyMirroringTemplate: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyPartitioning: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyPartitioning: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyPartitioning: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTablePolicyPartitioning: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMaterializedViewPolicyPartitioning: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeMaterializedViewPolicyPartitioning: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyPartitioning: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteMaterializedViewPolicyPartitioning: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyRestrictedViewAccess: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyRestrictedViewAccess: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyRestrictedViewAccess: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablesPolicyRestrictedViewAccess: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyRestrictedViewAccess: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicyRowStore: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicyRowStore: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeClusterPolicyRowStore: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteClusterPolicyRowStore: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicySandbox: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicySandbox: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteClusterPolicySandbox: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterSandboxesStats: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeDatabasePolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTablePolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteDatabasePolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeClusterPolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteClusterPolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicySharding: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicyShardsGrouping: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePolicyShardsGrouping: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeDatabasePolicyShardsGrouping: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteDatabasePolicyShardsGrouping: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeDatabasePolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeTablePolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeClusterPolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteDatabasePolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteClusterPolicyStreamingIngestion: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicyManagedIdentity: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicyManagedIdentity: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePolicyManagedIdentity: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeDatabasePolicyManagedIdentity: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicyManagedIdentity: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeClusterPolicyManagedIdentity: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteDatabasePolicyManagedIdentity: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteClusterPolicyManagedIdentity: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyAutoDelete: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyAutoDelete: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyAutoDelete: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicyCallout: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicyCallout: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeClusterPolicyCallout: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteClusterPolicyCallout: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicyCapacity: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicyCapacity: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeClusterPolicyCapacity: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicyRequestClassification: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicyRequestClassification: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeClusterPolicyRequestClassification: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteClusterPolicyRequestClassification: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicyMultiDatabaseAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicyMultiDatabaseAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeClusterPolicyMultiDatabaseAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicyDiagnostics: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicyDiagnostics: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePolicyDiagnostics: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeDatabasePolicyDiagnostics: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicyDiagnostics: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeClusterPolicyDiagnostics: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteDatabasePolicyDiagnostics: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPolicyQueryWeakConsistency: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterPolicyQueryWeakConsistency: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeClusterPolicyQueryWeakConsistency: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePolicyExtentTagsRetention: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableStarPolicyExtentTagsRetention: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePolicyExtentTagsRetention: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTablePolicyExtentTagsRetention: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabasePolicyExtentTagsRetention: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTablePolicyExtentTagsRetention: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteDatabasePolicyExtentTagsRetention: Kusto.Language.Symbols.CommandSymbol | null;
        ShowPrincipalRoles: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePrincipalRoles: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePrincipalRoles: Kusto.Language.Symbols.CommandSymbol | null;
        ShowGraphModelPrincipalRoles: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExternalTablesPrincipalRoles: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFunctionPrincipalRoles: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPrincipalRoles: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablePrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        ShowGraphModelPrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFunctionPrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        AddClusterRole: Kusto.Language.Symbols.CommandSymbol | null;
        DropClusterRole: Kusto.Language.Symbols.CommandSymbol | null;
        SetClusterRole: Kusto.Language.Symbols.CommandSymbol | null;
        AddDatabaseRole: Kusto.Language.Symbols.CommandSymbol | null;
        DropDatabaseRole: Kusto.Language.Symbols.CommandSymbol | null;
        SetDatabaseRole: Kusto.Language.Symbols.CommandSymbol | null;
        AddTableRole: Kusto.Language.Symbols.CommandSymbol | null;
        DropTableRole: Kusto.Language.Symbols.CommandSymbol | null;
        SetTableRole: Kusto.Language.Symbols.CommandSymbol | null;
        AddFunctionRole: Kusto.Language.Symbols.CommandSymbol | null;
        DropFunctionRole: Kusto.Language.Symbols.CommandSymbol | null;
        SetFunctionRole: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterBlockedPrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        AddClusterBlockedPrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        DropClusterBlockedPrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        SetClusterMaintenanceMode: Kusto.Language.Symbols.CommandSymbol | null;
        IngestIntoTable: Kusto.Language.Symbols.CommandSymbol | null;
        IngestInlineIntoTable: Kusto.Language.Symbols.CommandSymbol | null;
        SetTable: Kusto.Language.Symbols.CommandSymbol | null;
        AppendTable: Kusto.Language.Symbols.CommandSymbol | null;
        SetOrAppendTable: Kusto.Language.Symbols.CommandSymbol | null;
        SetOrReplaceTable: Kusto.Language.Symbols.CommandSymbol | null;
        ExportToStorage: Kusto.Language.Symbols.CommandSymbol | null;
        ExportToSqlTable: Kusto.Language.Symbols.CommandSymbol | null;
        ExportToExternalTable: Kusto.Language.Symbols.CommandSymbol | null;
        CreateOrAlterContinuousExport: Kusto.Language.Symbols.CommandSymbol | null;
        ShowContinuousExport: Kusto.Language.Symbols.CommandSymbol | null;
        ShowContinuousExports: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterPendingContinuousExports: Kusto.Language.Symbols.CommandSymbol | null;
        ShowContinuousExportExportedArtifacts: Kusto.Language.Symbols.CommandSymbol | null;
        ShowContinuousExportFailures: Kusto.Language.Symbols.CommandSymbol | null;
        SetContinuousExportCursor: Kusto.Language.Symbols.CommandSymbol | null;
        DropContinuousExport: Kusto.Language.Symbols.CommandSymbol | null;
        EnableContinuousExport: Kusto.Language.Symbols.CommandSymbol | null;
        DisableContinuousExport: Kusto.Language.Symbols.CommandSymbol | null;
        CreateMaterializedView: Kusto.Language.Symbols.CommandSymbol | null;
        CreateMaterializedViewOverMaterializedView: Kusto.Language.Symbols.CommandSymbol | null;
        RenameMaterializedView: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedView: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViews: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewsDetails: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewDetails: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewPolicyRetention: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewPolicyMerge: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewPolicyPartitioning: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewExtents: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMaterializedView: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMaterializedViewOverMaterializedView: Kusto.Language.Symbols.CommandSymbol | null;
        CreateOrAlterMaterializedView: Kusto.Language.Symbols.CommandSymbol | null;
        CreateOrAlterMaterializedViewOverMaterializedView: Kusto.Language.Symbols.CommandSymbol | null;
        DropMaterializedView: Kusto.Language.Symbols.CommandSymbol | null;
        EnableDisableMaterializedView: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewPrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewSchemaAsJson: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewCslSchema: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMaterializedViewFolder: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMaterializedViewDocString: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMaterializedViewLookback: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMaterializedViewAutoUpdateSchema: Kusto.Language.Symbols.CommandSymbol | null;
        ClearMaterializedViewData: Kusto.Language.Symbols.CommandSymbol | null;
        SetMaterializedViewCursor: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableOperationsMirroringStatus: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableOperationsMirroringExportedArtifacts: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableOperationsMirroringFailures: Kusto.Language.Symbols.CommandSymbol | null;
        ShowCluster: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterDetails: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDiagnostics: Kusto.Language.Symbols.CommandSymbol | null;
        ShowCapacity: Kusto.Language.Symbols.CommandSymbol | null;
        ShowOperations: Kusto.Language.Symbols.CommandSymbol | null;
        ShowOperationDetails: Kusto.Language.Symbols.CommandSymbol | null;
        ShowJournal: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseJournal: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterJournal: Kusto.Language.Symbols.CommandSymbol | null;
        ShowQueries: Kusto.Language.Symbols.CommandSymbol | null;
        ShowRunningQueries: Kusto.Language.Symbols.CommandSymbol | null;
        CancelQuery: Kusto.Language.Symbols.CommandSymbol | null;
        ShowQueryPlan: Kusto.Language.Symbols.CommandSymbol | null;
        ShowCache: Kusto.Language.Symbols.CommandSymbol | null;
        AlterCache: Kusto.Language.Symbols.CommandSymbol | null;
        ShowCommands: Kusto.Language.Symbols.CommandSymbol | null;
        ShowCommandsAndQueries: Kusto.Language.Symbols.CommandSymbol | null;
        ShowIngestionFailures: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDataOperations: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseKeyVaultSecrets: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterExtents: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterExtentsMetadata: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseExtents: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseExtentsMetadata: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseExtentTagsStatistics: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseExtentsPartitioningStatistics: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableExtents: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableExtentsMetadata: Kusto.Language.Symbols.CommandSymbol | null;
        TableShardsGroupShow: Kusto.Language.Symbols.CommandSymbol | null;
        TableShardsGroupMetadataShow: Kusto.Language.Symbols.CommandSymbol | null;
        TableShardGroupsShow: Kusto.Language.Symbols.CommandSymbol | null;
        TableShardGroupsStatisticsShow: Kusto.Language.Symbols.CommandSymbol | null;
        TablesShardGroupsStatisticsShow: Kusto.Language.Symbols.CommandSymbol | null;
        DatabaseShardGroupsStatisticsShow: Kusto.Language.Symbols.CommandSymbol | null;
        MergeExtents: Kusto.Language.Symbols.CommandSymbol | null;
        MergeExtentsDryrun: Kusto.Language.Symbols.CommandSymbol | null;
        MoveExtentsFrom: Kusto.Language.Symbols.CommandSymbol | null;
        MoveExtentsQuery: Kusto.Language.Symbols.CommandSymbol | null;
        TableShuffleExtents: Kusto.Language.Symbols.CommandSymbol | null;
        TableShuffleExtentsQuery: Kusto.Language.Symbols.CommandSymbol | null;
        ReplaceExtents: Kusto.Language.Symbols.CommandSymbol | null;
        DropExtent: Kusto.Language.Symbols.CommandSymbol | null;
        DropExtents: Kusto.Language.Symbols.CommandSymbol | null;
        DropExtentsPartitionMetadata: Kusto.Language.Symbols.CommandSymbol | null;
        DropPretendExtentsByProperties: Kusto.Language.Symbols.CommandSymbol | null;
        ShowVersion: Kusto.Language.Symbols.CommandSymbol | null;
        ClearTableData: Kusto.Language.Symbols.CommandSymbol | null;
        ClearTableCacheStreamingIngestionSchema: Kusto.Language.Symbols.CommandSymbol | null;
        ShowStorageArtifactsCleanupState: Kusto.Language.Symbols.CommandSymbol | null;
        ClusterDropStorageArtifactsCleanupState: Kusto.Language.Symbols.CommandSymbol | null;
        StoredQueryResultSet: Kusto.Language.Symbols.CommandSymbol | null;
        StoredQueryResultSetOrReplace: Kusto.Language.Symbols.CommandSymbol | null;
        StoredQueryResultsShow: Kusto.Language.Symbols.CommandSymbol | null;
        StoredQueryResultShowSchema: Kusto.Language.Symbols.CommandSymbol | null;
        StoredQueryResultDrop: Kusto.Language.Symbols.CommandSymbol | null;
        StoredQueryResultsDrop: Kusto.Language.Symbols.CommandSymbol | null;
        GraphModelCreateOrAlter: Kusto.Language.Symbols.CommandSymbol | null;
        GraphModelShow: Kusto.Language.Symbols.CommandSymbol | null;
        GraphModelsShow: Kusto.Language.Symbols.CommandSymbol | null;
        GraphModelDrop: Kusto.Language.Symbols.CommandSymbol | null;
        SetGraphModelAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        AddGraphModelAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        DropGraphModelAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        GraphSnapshotMake: Kusto.Language.Symbols.CommandSymbol | null;
        GraphSnapshotShow: Kusto.Language.Symbols.CommandSymbol | null;
        GraphSnapshotsShow: Kusto.Language.Symbols.CommandSymbol | null;
        GraphSnapshotDrop: Kusto.Language.Symbols.CommandSymbol | null;
        GraphSnapshotsDrop: Kusto.Language.Symbols.CommandSymbol | null;
        GraphSnapshotShowStatistics: Kusto.Language.Symbols.CommandSymbol | null;
        GraphSnapshotsShowStatistics: Kusto.Language.Symbols.CommandSymbol | null;
        GraphSnapshotShowFailures: Kusto.Language.Symbols.CommandSymbol | null;
        ShowCertificates: Kusto.Language.Symbols.CommandSymbol | null;
        ShowCloudSettings: Kusto.Language.Symbols.CommandSymbol | null;
        ShowCommConcurrency: Kusto.Language.Symbols.CommandSymbol | null;
        ShowCommPools: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFabricCache: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFabricLocks: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFabricClocks: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFeatureFlags: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMemPools: Kusto.Language.Symbols.CommandSymbol | null;
        ShowServicePoints: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTcpConnections: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTcpPorts: Kusto.Language.Symbols.CommandSymbol | null;
        ShowThreadPools: Kusto.Language.Symbols.CommandSymbol | null;
        ShowWhatsGoingOn: Kusto.Language.Symbols.CommandSymbol | null;
        ExecuteDatabaseScript: Kusto.Language.Symbols.CommandSymbol | null;
        ExecuteClusterScript: Kusto.Language.Symbols.CommandSymbol | null;
        CreateRequestMemoryProfile: Kusto.Language.Symbols.CommandSymbol | null;
        CreateRequestSupport: Kusto.Language.Symbols.CommandSymbol | null;
        ShowRequestSupport: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterAdminState: Kusto.Language.Symbols.CommandSymbol | null;
        ClearRemoteClusterDatabaseSchema: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterMonitoring: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterScaleIn: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterServices: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterNetwork: Kusto.Language.Symbols.CommandSymbol | null;
        AlterClusterStorageKeys: Kusto.Language.Symbols.CommandSymbol | null;
        ShowClusterStorageKeysHash: Kusto.Language.Symbols.CommandSymbol | null;
        AlterFabricServiceAssignmentsCommand: Kusto.Language.Symbols.CommandSymbol | null;
        DropFabricServiceAssignmentsCommand: Kusto.Language.Symbols.CommandSymbol | null;
        CreateEntityGroupCommand: Kusto.Language.Symbols.CommandSymbol | null;
        CreateOrAlterEntityGroupCommand: Kusto.Language.Symbols.CommandSymbol | null;
        AlterEntityGroup: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeEntityGroup: Kusto.Language.Symbols.CommandSymbol | null;
        DropEntityGroup: Kusto.Language.Symbols.CommandSymbol | null;
        ShowEntityGroup: Kusto.Language.Symbols.CommandSymbol | null;
        ShowEntityGroups: Kusto.Language.Symbols.CommandSymbol | null;
        AlterExtentContainersAdd: Kusto.Language.Symbols.CommandSymbol | null;
        AlterExtentContainersDrop: Kusto.Language.Symbols.CommandSymbol | null;
        AlterExtentContainersRecycle: Kusto.Language.Symbols.CommandSymbol | null;
        AlterExtentContainersSet: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExtentContainers: Kusto.Language.Symbols.CommandSymbol | null;
        DropEmptyExtentContainers: Kusto.Language.Symbols.CommandSymbol | null;
        CleanDatabaseExtentContainers: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseExtentContainersCleanOperations: Kusto.Language.Symbols.CommandSymbol | null;
        ClearDatabaseCacheQueryResults: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseCacheQueryResults: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasesManagementGroups: Kusto.Language.Symbols.CommandSymbol | null;
        AlterDatabaseStorageKeys: Kusto.Language.Symbols.CommandSymbol | null;
        ClearDatabaseCacheStreamingIngestionSchema: Kusto.Language.Symbols.CommandSymbol | null;
        ClearDatabaseCacheQueryWeakConsistency: Kusto.Language.Symbols.CommandSymbol | null;
        ShowEntitySchema: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExtentDetails: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExtentColumnStorageStats: Kusto.Language.Symbols.CommandSymbol | null;
        AttachExtentsIntoTableByContainer: Kusto.Language.Symbols.CommandSymbol | null;
        AttachExtentsIntoTableByMetadata: Kusto.Language.Symbols.CommandSymbol | null;
        AlterExtentTagsFromQuery: Kusto.Language.Symbols.CommandSymbol | null;
        AlterMergeExtentTagsFromQuery: Kusto.Language.Symbols.CommandSymbol | null;
        DropExtentTagsFromQuery: Kusto.Language.Symbols.CommandSymbol | null;
        DropExtentTagsFromTable: Kusto.Language.Symbols.CommandSymbol | null;
        DropExtentTagsRetention: Kusto.Language.Symbols.CommandSymbol | null;
        MergeDatabaseShardGroups: Kusto.Language.Symbols.CommandSymbol | null;
        AlterFollowerClusterConfiguration: Kusto.Language.Symbols.CommandSymbol | null;
        AddFollowerDatabaseAuthorizedPrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        DropFollowerDatabaseAuthorizedPrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        AlterFollowerDatabaseAuthorizedPrincipals: Kusto.Language.Symbols.CommandSymbol | null;
        DropFollowerDatabasePolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        AlterFollowerDatabaseChildEntities: Kusto.Language.Symbols.CommandSymbol | null;
        AlterFollowerDatabaseConfiguration: Kusto.Language.Symbols.CommandSymbol | null;
        DropFollowerDatabases: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFollowerDatabase: Kusto.Language.Symbols.CommandSymbol | null;
        AlterFollowerTablesPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        DropFollowerTablesPolicyCaching: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFreshness: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFunctionSchemaAsJson: Kusto.Language.Symbols.CommandSymbol | null;
        SetMaterializedViewAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        AddMaterializedViewAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        DropMaterializedViewAdmins: Kusto.Language.Symbols.CommandSymbol | null;
        SetMaterializedViewConcurrency: Kusto.Language.Symbols.CommandSymbol | null;
        ClearMaterializedViewStatistics: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewStatistics: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewDiagnostics: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMaterializedViewFailures: Kusto.Language.Symbols.CommandSymbol | null;
        ShowMemory: Kusto.Language.Symbols.CommandSymbol | null;
        CancelOperation: Kusto.Language.Symbols.CommandSymbol | null;
        DisablePlugin: Kusto.Language.Symbols.CommandSymbol | null;
        EnablePlugin: Kusto.Language.Symbols.CommandSymbol | null;
        ShowPlugins: Kusto.Language.Symbols.CommandSymbol | null;
        ShowPrincipalAccess: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasePurgeOperation: Kusto.Language.Symbols.CommandSymbol | null;
        ShowQueryExecution: Kusto.Language.Symbols.CommandSymbol | null;
        AlterPoliciesOfRetention: Kusto.Language.Symbols.CommandSymbol | null;
        DeletePoliciesOfRetention: Kusto.Language.Symbols.CommandSymbol | null;
        CreateRowStore: Kusto.Language.Symbols.CommandSymbol | null;
        DropRowStore: Kusto.Language.Symbols.CommandSymbol | null;
        ShowRowStore: Kusto.Language.Symbols.CommandSymbol | null;
        ShowRowStores: Kusto.Language.Symbols.CommandSymbol | null;
        ShowRowStoreTransactions: Kusto.Language.Symbols.CommandSymbol | null;
        ShowRowStoreSeals: Kusto.Language.Symbols.CommandSymbol | null;
        ShowSchema: Kusto.Language.Symbols.CommandSymbol | null;
        ShowCallStacks: Kusto.Language.Symbols.CommandSymbol | null;
        ShowFileSystem: Kusto.Language.Symbols.CommandSymbol | null;
        ShowRunningCallouts: Kusto.Language.Symbols.CommandSymbol | null;
        ShowStreamingIngestionFailures: Kusto.Language.Symbols.CommandSymbol | null;
        ShowStreamingIngestionStatistics: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableRowStoreReferencesDropKey: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableRowStoreReferencesDropRowStore: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableRowStoreReferencesDropBlockedKeys: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableRowStoreReferencesDisableKey: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableRowStoreReferencesDisableRowStore: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableRowStoreReferencesDisableBlockedKeys: Kusto.Language.Symbols.CommandSymbol | null;
        SetTableRowStoreReferences: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableRowStoreReferences: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableColumnStatistics: Kusto.Language.Symbols.CommandSymbol | null;
        AlterTableColumnStatisticsMethod: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableColumnStatitics: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableDimensions: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteTableRecords: Kusto.Language.Symbols.CommandSymbol | null;
        TableDataUpdate: Kusto.Language.Symbols.CommandSymbol | null;
        DeleteMaterializedViewRecords: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableColumnsClassification: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableRowStores: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableRowStoreSealInfo: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTablesColumnStatistics: Kusto.Language.Symbols.CommandSymbol | null;
        ShowTableDataStatistics: Kusto.Language.Symbols.CommandSymbol | null;
        CreateTempStorage: Kusto.Language.Symbols.CommandSymbol | null;
        DropTempStorage: Kusto.Language.Symbols.CommandSymbol | null;
        DropStoredQueryResultContainers: Kusto.Language.Symbols.CommandSymbol | null;
        DropUnusedStoredQueryResultContainers: Kusto.Language.Symbols.CommandSymbol | null;
        EnableDatabaseMaintenanceMode: Kusto.Language.Symbols.CommandSymbol | null;
        DisableDatabaseMaintenanceMode: Kusto.Language.Symbols.CommandSymbol | null;
        EnableDatabaseStreamingIngestionMaintenanceMode: Kusto.Language.Symbols.CommandSymbol | null;
        DisableDatabaseStreamingIngestionMaintenanceMode: Kusto.Language.Symbols.CommandSymbol | null;
        ShowQueryCallTree: Kusto.Language.Symbols.CommandSymbol | null;
        ShowExtentCorruptedDatetime: Kusto.Language.Symbols.CommandSymbol | null;
        PatchExtentCorruptedDatetime: Kusto.Language.Symbols.CommandSymbol | null;
        ClearClusterCredStoreCache: Kusto.Language.Symbols.CommandSymbol | null;
        ClearClusterGroupMembershipCache: Kusto.Language.Symbols.CommandSymbol | null;
        ClearExternalArtifactsCache: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabasesEntities: Kusto.Language.Symbols.CommandSymbol | null;
        ShowDatabaseEntity: Kusto.Language.Symbols.CommandSymbol | null;
        ReplaceDatabaseKeyVaultSecrets: Kusto.Language.Symbols.CommandSymbol | null;
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.CommandSymbol> | null;
    }
    var EngineCommands: EngineCommandsFunc;

    interface TestHelpers {
    }
    interface TestHelpersFunc extends Function {
        prototype: TestHelpers;
        new (): TestHelpers;
        GetGlobalExpansionCacheSize(globals: Kusto.Language.GlobalState | null): number;
        GetGlobalCachedExpansionCount(globals: Kusto.Language.GlobalState | null, signature: Kusto.Language.Symbols.Signature | null): number;
        GetGlobalCachedResultTypeCount(globals: Kusto.Language.GlobalState | null, signature: Kusto.Language.Symbols.Signature | null): number;
        GetLocalCachedExpansionCount(code: Kusto.Language.KustoCode | null, signature: Kusto.Language.Symbols.Signature | null): number;
        GetLocalCachedResultTypeCount(code: Kusto.Language.KustoCode | null, signature: Kusto.Language.Symbols.Signature | null): number;
        Bind(syntax: Kusto.Language.Syntax.SyntaxNode | null, globals: Kusto.Language.GlobalState | null): void;
    }
    var TestHelpers: TestHelpersFunc;

    interface AriaBridgeCommands {
    }
    interface AriaBridgeCommandsFunc extends Function {
        prototype: AriaBridgeCommands;
        new (): AriaBridgeCommands;
        ShowVersion: Kusto.Language.Symbols.CommandSymbol | null;
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.CommandSymbol> | null;
    }
    var AriaBridgeCommands: AriaBridgeCommandsFunc;

    interface DiagnosticSeverity {
    }
    interface DiagnosticSeverityFunc extends Function {
        prototype: DiagnosticSeverity;
        new (): DiagnosticSeverity;
        /**
         * A diagnostic that represents code that will fail to execute.
         *
         * @static
         * @public
         * @memberof Kusto.Language.DiagnosticSeverity
         * @constant
         * @default "Error"
         * @type string
         */
        Error: string | null;
        /**
         * A diagnostic that represents code that will execute but with possible unintended consequence.
         *
         * @static
         * @public
         * @memberof Kusto.Language.DiagnosticSeverity
         * @constant
         * @default "Warning"
         * @type string
         */
        Warning: string | null;
        /**
         * A diagnostic that represents a suggestion to improve the code.
         *
         * @static
         * @public
         * @memberof Kusto.Language.DiagnosticSeverity
         * @constant
         * @default "Suggestion"
         * @type string
         */
        Suggestion: string | null;
        /**
         * A diagnostic that represents information about the code.
         *
         * @static
         * @public
         * @memberof Kusto.Language.DiagnosticSeverity
         * @constant
         * @default "Information"
         * @type string
         */
        Information: string | null;
        /**
         * A diagnostic that is not meant to be relayed to the user.
         *
         * @static
         * @public
         * @memberof Kusto.Language.DiagnosticSeverity
         * @constant
         * @default "Hidden"
         * @type string
         */
        Hidden: string | null;
    }
    var DiagnosticSeverity: DiagnosticSeverityFunc;

    enum DiagnosticLocationKind {
        Absolute = 0,
        Relative = 1,
        RelativeEnd = 2
    }

    interface DiagnosticFacts {
    }
    interface DiagnosticFactsFunc extends Function {
        prototype: DiagnosticFacts;
        new (): DiagnosticFacts;
        GetMissingText(text: string | null): Kusto.Language.Diagnostic | null;
        GetUnexpectedCharacter(text: string | null): Kusto.Language.Diagnostic | null;
        GetMalformedToken(term: string | null): Kusto.Language.Diagnostic | null;
        GetMalformedLiteral(): Kusto.Language.Diagnostic | null;
        GetTermsExpected(terms: string[] | null): Kusto.Language.Diagnostic | null;
        GetTokenExpected(kinds: Kusto.Language.Syntax.SyntaxKind[] | null): Kusto.Language.Diagnostic | null;
        GetTokenExpected$2(kinds: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxKind> | null): Kusto.Language.Diagnostic | null;
        GetTokenExpected$1(texts: System.Collections.Generic.IEnumerable$1<string> | null): Kusto.Language.Diagnostic | null;
        GetTokenExpected$3(tokens: string[] | null): Kusto.Language.Diagnostic | null;
        GetMissingName(): Kusto.Language.Diagnostic | null;
        GetMissingNameWithKeyword(keyword: string | null): Kusto.Language.Diagnostic | null;
        GetMissingValue(): Kusto.Language.Diagnostic | null;
        GetMissingExpression(): Kusto.Language.Diagnostic | null;
        GetMissingExpressionWithKeyword(keyword: string | null): Kusto.Language.Diagnostic | null;
        GetMissingNumber(): Kusto.Language.Diagnostic | null;
        GetMissingString(): Kusto.Language.Diagnostic | null;
        GetMissingBoolean(): Kusto.Language.Diagnostic | null;
        GetMissingTypeOfLiteral(): Kusto.Language.Diagnostic | null;
        GetMissingFunctionCall(): Kusto.Language.Diagnostic | null;
        GetMissingFunctionDeclaration(): Kusto.Language.Diagnostic | null;
        GetMissingTypeName(): Kusto.Language.Diagnostic | null;
        GetMissingParameter(): Kusto.Language.Diagnostic | null;
        GetMissingFirstOrLast(): Kusto.Language.Diagnostic | null;
        GetMissingAllLastOrNone(): Kusto.Language.Diagnostic | null;
        GetMissingJsonValue(): Kusto.Language.Diagnostic | null;
        GetMissingJoinOnClause(): Kusto.Language.Diagnostic | null;
        GetMissingJsonPair(): Kusto.Language.Diagnostic | null;
        GetMissingStatement(): Kusto.Language.Diagnostic | null;
        GetMissingPatternMatch(): Kusto.Language.Diagnostic | null;
        GetMissingClause(): Kusto.Language.Diagnostic | null;
        GetMissingClause$1(clauseName: string | null): Kusto.Language.Diagnostic | null;
        GetMissingSchemaDeclaration(): Kusto.Language.Diagnostic | null;
        GetParsePatternMustStartWithColumnNameOrStar(): Kusto.Language.Diagnostic | null;
        GetParsePatternNameDoesNotFollowStringLiteral(): Kusto.Language.Diagnostic | null;
        GetParsePatternStringLiteralMustFollowStar(): Kusto.Language.Diagnostic | null;
        GetParsePatternUsingStarAfterStringColumnIsAmbiguous(): Kusto.Language.Diagnostic | null;
        GetInvalidPatternPart(): Kusto.Language.Diagnostic | null;
        GetIdentifierNameOnly(): Kusto.Language.Diagnostic | null;
        GetOperatorNotDefined(name: string | null, argumentTypes: Kusto.Language.Symbols.TypeSymbol[] | null): Kusto.Language.Diagnostic | null;
        GetOperatorNotDefined$1(name: string | null, argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null): Kusto.Language.Diagnostic | null;
        GetTypeExpected(type: Kusto.Language.Symbols.Symbol | null): Kusto.Language.Diagnostic | null;
        GetTypeExpected$1(types: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null): Kusto.Language.Diagnostic | null;
        GetScalarTypeExpected(): Kusto.Language.Diagnostic | null;
        GetColumnExpected(): Kusto.Language.Diagnostic | null;
        GetRenameAssignmentExpected(): Kusto.Language.Diagnostic | null;
        GetTabularValueExpected(): Kusto.Language.Diagnostic | null;
        GetTableOrScalarExpected(): Kusto.Language.Diagnostic | null;
        GetSingleColumnTableExpected(): Kusto.Language.Diagnostic | null;
        GetDatabaseExpected(): Kusto.Language.Diagnostic | null;
        GetClusterExpected(): Kusto.Language.Diagnostic | null;
        GetTypeNotAllowed(type: Kusto.Language.Symbols.Symbol | null): Kusto.Language.Diagnostic | null;
        GetFunctionRequiresArgumentList(functionName: string | null): Kusto.Language.Diagnostic | null;
        GetArgumentCountExpected(count: number): Kusto.Language.Diagnostic | null;
        GetFunctionExpectsArgumentCountExact(functionName: string | null, count: number): Kusto.Language.Diagnostic | null;
        GetFunctionExpectsArgumentCountRange(functionName: string | null, min: number, max: number): Kusto.Language.Diagnostic | null;
        GetFunctionHasIncorrectNumberOfArguments(): Kusto.Language.Diagnostic | null;
        GetScalarFunctionNotDefined(name: string | null): Kusto.Language.Diagnostic | null;
        GetAggregateFunctionNotDefined(name: string | null): Kusto.Language.Diagnostic | null;
        GetPlugInFunctionNotDefined(name: string | null): Kusto.Language.Diagnostic | null;
        GetPlugInFunctionIsNotEnabled(name: string | null): Kusto.Language.Diagnostic | null;
        GetPluginNotAllowedInThisContext(name: string | null): Kusto.Language.Diagnostic | null;
        GetFunctionNotDefinedWithMatchingParameters(name: string | null, argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null): Kusto.Language.Diagnostic | null;
        GetNameIsNotAFunction(name: string | null): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeConstant(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeConstantOrIdentifier(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeLiteral(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeLiteralScalarValue(): Kusto.Language.Diagnostic | null;
        GetExpressionMustNotBeEmpty(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeInteger(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeRealOrDecimal(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeIntegerOrArray(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeNumeric(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeNumericOrBool(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeSummable(): Kusto.Language.Diagnostic | null;
        GetMultiValuedExpressionCannotBeAssignedToVariable(): Kusto.Language.Diagnostic | null;
        GetExpressionMustHaveValue$1<T>(T: {prototype: T}, values: System.Collections.Generic.IReadOnlyList$1<T> | null): Kusto.Language.Diagnostic | null;
        GetExpressionMustHaveValue<T>(T: {prototype: T}, values: T[] | null): Kusto.Language.Diagnostic | null;
        GetExpressionMustNotHaveValue<T>(T: {prototype: T}, values: System.Collections.Generic.IReadOnlyList$1<T> | null): Kusto.Language.Diagnostic | null;
        GetExpressionMustHaveType$1<S>(S: {prototype: S}, types: System.Collections.Generic.IReadOnlyList$1<S> | null): Kusto.Language.Diagnostic | null;
        GetExpressionMustHaveType<S>(S: {prototype: S}, types: S[] | null): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToAnyKnownItem(name: string | null, entity?: string | null): Kusto.Language.Diagnostic | null;
        GetFunctionNotDefined(name: string | null): Kusto.Language.Diagnostic | null;
        GetAggregateNotAllowedInThisContext(name: string | null): Kusto.Language.Diagnostic | null;
        GetColumnMustExistOnBothSidesOfJoin(name: string | null): Kusto.Language.Diagnostic | null;
        GetNameRefersToMoreThanOneItem(name: string | null): Kusto.Language.Diagnostic | null;
        GetTheElementAccessOperatorIsNotAllowedInThisContext(): Kusto.Language.Diagnostic | null;
        GetTheExpressionHasNoName(): Kusto.Language.Diagnostic | null;
        GetTheExpressionDoesNotHaveMultipleValues(): Kusto.Language.Diagnostic | null;
        GetTheNameDoesNotHaveCorrespondingExpression(): Kusto.Language.Diagnostic | null;
        GetInvalidTypeName(name: string | null): Kusto.Language.Diagnostic | null;
        GetInvalidColumnDeclaration(): Kusto.Language.Diagnostic | null;
        GetDuplicateColumnDeclaration(name: string | null): Kusto.Language.Diagnostic | null;
        GetInvalidTypeExpression(): Kusto.Language.Diagnostic | null;
        GetIncorrectNumberOfDataValues(multiple: number): Kusto.Language.Diagnostic | null;
        GetQueryOperatorCannotBeFirst(): Kusto.Language.Diagnostic | null;
        GetQueryOperatorMustBeFirst(): Kusto.Language.Diagnostic | null;
        GetQueryOperatorExpected(): Kusto.Language.Diagnostic | null;
        GetQueryOperatorNotAllowedInContext(name: string | null): Kusto.Language.Diagnostic | null;
        GetTypeIsNotIntervalType(intervalType: Kusto.Language.Symbols.Symbol | null, rangeType: Kusto.Language.Symbols.Symbol | null): Kusto.Language.Diagnostic | null;
        GetUnknownQueryOperatorParameterName(name: string | null): Kusto.Language.Diagnostic | null;
        GetParameterAlreadySpecified(name: string | null): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToTable(name: string | null): Kusto.Language.Diagnostic | null;
        GetInvalidJoinCondition(): Kusto.Language.Diagnostic | null;
        GetInvalidJoinConditionOperand(prefix: string | null): Kusto.Language.Diagnostic | null;
        GetTheExpressionRefersToMoreThanOneColumn(): Kusto.Language.Diagnostic | null;
        GetPackMustBeLastItemInList(): Kusto.Language.Diagnostic | null;
        GetValueCountMustEqualParameterCount(): Kusto.Language.Diagnostic | null;
        GetPathValueWithNoPathParameter(): Kusto.Language.Diagnostic | null;
        GetPathValueExpected(): Kusto.Language.Diagnostic | null;
        GetNoPatternMatchesArguments(): Kusto.Language.Diagnostic | null;
        GetDefaultValueExpected(): Kusto.Language.Diagnostic | null;
        GetTableHasNoColumns(): Kusto.Language.Diagnostic | null;
        GetStarExpressionNotAllowed(): Kusto.Language.Diagnostic | null;
        GetStarExpressionMustBeLastArgument(): Kusto.Language.Diagnostic | null;
        GetNamedArgumentsNotSupported(): Kusto.Language.Diagnostic | null;
        GetCompoundNamedArgumentsNotSupported(): Kusto.Language.Diagnostic | null;
        GetUnnamedArgumentAfterOutofOrderNamedArgument(): Kusto.Language.Diagnostic | null;
        GetUnknownArgumentName(): Kusto.Language.Diagnostic | null;
        GetMissingArgumentForParameter(parameterName: string | null): Kusto.Language.Diagnostic | null;
        GetIncompleteFragment(): Kusto.Language.Diagnostic | null;
        GetNoColumnsInScope(): Kusto.Language.Diagnostic | null;
        GetErrorInExpansion(name: string | null, errors: string | null): Kusto.Language.Diagnostic | null;
        GetVariableAlreadyDeclared(name: string | null): Kusto.Language.Diagnostic | null;
        GetMaterializedViewNameMustBeStringLiteral(): Kusto.Language.Diagnostic | null;
        GetAnalyzerFailure(analyzerName: string | null, message: string | null): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToAnyKnownTable(name: string | null): Kusto.Language.Diagnostic | null;
        GetFuzzyEntityNotDefined(name?: string | null, kind?: string | null): Kusto.Language.Diagnostic | null;
        GetFuzzyClusterNotDefined(name?: string | null): Kusto.Language.Diagnostic | null;
        GetFuzzyDatabaseNotDefined(name?: string | null): Kusto.Language.Diagnostic | null;
        GetFuzzyTableNotDefined(name?: string | null): Kusto.Language.Diagnostic | null;
        GetFuzzyExternalTableNotDefined(name?: string | null): Kusto.Language.Diagnostic | null;
        GetFuzzyMaterializedViewNotDefined(name?: string | null): Kusto.Language.Diagnostic | null;
        GetFuzzyEntityGroupNotDefined(name?: string | null): Kusto.Language.Diagnostic | null;
        GetFuzzyFunctionNotDefined(name?: string | null): Kusto.Language.Diagnostic | null;
        GetFuzzyStoredQueryResultNotDefined(name?: string | null): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeOrderable(): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToAnyKnownCluster(name: string | null): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToAnyKnownDatabase(name: string | null): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToAnyKnownExternalTable(name: string | null): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToAnyKnownMaterializedView(name: string | null): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToAnyKnownFunction(name: string | null): Kusto.Language.Diagnostic | null;
        GetClientParametersNotSupported(): Kusto.Language.Diagnostic | null;
        GetRawGuidLiteralNotAllowed(): Kusto.Language.Diagnostic | null;
        GetDecimalInDynamic(): Kusto.Language.Diagnostic | null;
        GetClusterDatabaseOrTableExpected(): Kusto.Language.Diagnostic | null;
        GetMissingGraphMatchPattern(): Kusto.Language.Diagnostic | null;
        GetGraphExpected(): Kusto.Language.Diagnostic | null;
        GetQueryOperatorExpectsGraph(): Kusto.Language.Diagnostic | null;
        GetColumnDeclarationExpected(): Kusto.Language.Diagnostic | null;
        GetIntegerLiteralExpected(): Kusto.Language.Diagnostic | null;
        GetStringLiteralExpected(): Kusto.Language.Diagnostic | null;
        GetBooleanLiteralExpected(): Kusto.Language.Diagnostic | null;
        GetSummableLiteralExpected(): Kusto.Language.Diagnostic | null;
        GetNumericLiteralExpected(): Kusto.Language.Diagnostic | null;
        GetScalarLiteralExpected(): Kusto.Language.Diagnostic | null;
        GetRealLiteralExpected(): Kusto.Language.Diagnostic | null;
        GetTabularParametersMustBeDeclaredFirst(): Kusto.Language.Diagnostic | null;
        GetCommonJoinColumnsMustHaveSameType(name: string | null): Kusto.Language.Diagnostic | null;
        GetNameRequiresBrackets(name: string | null): Kusto.Language.Diagnostic | null;
        GetMissingGraphEntityType(): Kusto.Language.Diagnostic | null;
        GetIncorrectNumberOfOutputGraphEntities(): Kusto.Language.Diagnostic | null;
        GetTableOrGraphExpected(): Kusto.Language.Diagnostic | null;
        GetNoCommonArgumentType(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeStringOrArray(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeDynamicArray(): Kusto.Language.Diagnostic | null;
        GetExpressionMustBeDynamicBag(): Kusto.Language.Diagnostic | null;
        GetInvalidNameInAggregateContext(name: string | null): Kusto.Language.Diagnostic | null;
        GetInvalidNameInPlugInContext(name: string | null): Kusto.Language.Diagnostic | null;
        GetMissingGraphMatchPatternElement(): Kusto.Language.Diagnostic | null;
        GetGraphMatchPatternSyntaxError(expectedElementType: string | null, actualElementType: string | null): Kusto.Language.Diagnostic | null;
        GetMakeGraphDynamicNodeIdColumnNotSupported(): Kusto.Language.Diagnostic | null;
        GetJoinKeyCannotBeDynamic(): Kusto.Language.Diagnostic | null;
        GetJoinKeysNotComparable(leftType: string | null, rightType: string | null): Kusto.Language.Diagnostic | null;
        GetMakeGraphImplicityIdShouldNotBeEmpty(): Kusto.Language.Diagnostic | null;
        GetQueryTextSizeExceeded(): Kusto.Language.Diagnostic | null;
        GetQuerySyntaxDepthExceeded(): Kusto.Language.Diagnostic | null;
        GetInternalFailure(): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToAnyKnownEntityGroup(name: string | null): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToAnyKnownStoredQueryResult(name: string | null): Kusto.Language.Diagnostic | null;
        GetTabularValueDoesNotHaveRequiredColumns(): Kusto.Language.Diagnostic | null;
        GetUnknownDirective(name: string | null): Kusto.Language.Diagnostic | null;
        /**
         * This is for expecting exactly a table reference, and not any other tabular expression.
         *
         * @static
         * @public
         * @this Kusto.Language.DiagnosticFacts
         * @memberof Kusto.Language.DiagnosticFacts
         * @return  {Kusto.Language.Diagnostic}
         */
        GetTableExpected(): Kusto.Language.Diagnostic | null;
        GetMissingPartitionColumnDeclaration(): Kusto.Language.Diagnostic | null;
        GetMissingDataFormat(): Kusto.Language.Diagnostic | null;
        GetMissingExternalTableKind(): Kusto.Language.Diagnostic | null;
        GetMissingPathFormatTokens(): Kusto.Language.Diagnostic | null;
        GetMissingConnectionStrings(): Kusto.Language.Diagnostic | null;
        GetUnknownTokenInPathFormatDefinition(): Kusto.Language.Diagnostic | null;
        GetWrongPartitionColumnType(): Kusto.Language.Diagnostic | null;
        GetWrongPartitionColumnFunction(): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToAnyKnownGraphModel(name: string | null): Kusto.Language.Diagnostic | null;
        GetNameDoesNotReferToAnyKnownGraphSnapshot(name: string | null, graphModelName: string | null): Kusto.Language.Diagnostic | null;
        GetLatestSnapshotUnknown(graphModelName: string | null): Kusto.Language.Diagnostic | null;
        GetVolatileGraphUnknown(graphModelName: string | null): Kusto.Language.Diagnostic | null;
        GetPartitionColumnNotUsedInPathFormat(partitionName: string | null): Kusto.Language.Diagnostic | null;
        GetPartitionColumnCanNotBeUsedBothDirectlyAndPattern(partitionName: string | null): Kusto.Language.Diagnostic | null;
        GetWrongVirtualPartitionColumnType(): Kusto.Language.Diagnostic | null;
        GetWrongDataStreamType(type: string | null): Kusto.Language.Diagnostic | null;
        GetWildcardedNamesNotAllowedInThisContext(): Kusto.Language.Diagnostic | null;
        GetInlineExternalTableDeltaDataFormatNotSupported(): Kusto.Language.Diagnostic | null;
        GetInlineExternalTableDeltaPartitionByNotSupported(): Kusto.Language.Diagnostic | null;
        GetInlineExternalTableDeltaPathFormatNotSupported(): Kusto.Language.Diagnostic | null;
        GetInlineExternalTableDeltaRequiresSingleRootUri(): Kusto.Language.Diagnostic | null;
        GetMultipleGraphOutputsRequireAliases(): Kusto.Language.Diagnostic | null;
        GetMissingCommand(): Kusto.Language.Diagnostic | null;
    }
    var DiagnosticFacts: DiagnosticFactsFunc;

    interface DiagnosticCategory {
    }
    interface DiagnosticCategoryFunc extends Function {
        prototype: DiagnosticCategory;
        new (): DiagnosticCategory;
        General: string | null;
        Correctness: string | null;
        Performance: string | null;
    }
    var DiagnosticCategory: DiagnosticCategoryFunc;

    interface Diagnostic extends System.IEquatable$1<Kusto.Language.Diagnostic> {
        /**
         * The code that uniquely identifies the specific kind of diagnostic.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Diagnostic
         * @function Code
         * @type string
         */
        Code: string | null;
        /**
         * The category of the diagnostic; Correctness, Performance, General, etc
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Diagnostic
         * @function Category
         * @type string
         */
        Category: string | null;
        /**
         * The severity of the diagnostic; Error, Warning, Suggestion, etc
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Diagnostic
         * @function Severity
         * @type string
         */
        Severity: string | null;
        /**
         * A short description of the diagnostic.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Diagnostic
         * @function Description
         * @type string
         */
        Description: string | null;
        /**
         * The message of the diagnostic.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Diagnostic
         * @function Message
         * @type string
         */
        Message: string | null;
        /**
         * True if the diagnostic has an known source location
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Diagnostic
         * @function HasLocation
         * @type boolean
         */
        HasLocation: boolean;
        /**
         * The kind of diagnositc location.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Diagnostic
         * @function LocationKind
         * @type Kusto.Language.DiagnosticLocationKind
         */
        LocationKind: Kusto.Language.DiagnosticLocationKind;
        /**
         * Start of diagnostic location in the source.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Diagnostic
         * @function Start
         * @type number
         */
        Start: number;
        /**
         * Length of diagnostic location in the source.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Diagnostic
         * @function Length
         * @type number
         */
        Length: number;
        /**
         * The position after the end of the diagnostic in source.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Diagnostic
         * @function End
         * @type number
         */
        End: number;
        WithCode(code: string | null): Kusto.Language.Diagnostic | null;
        WithCategory(category: string | null): Kusto.Language.Diagnostic | null;
        WithSeverity(severity: string | null): Kusto.Language.Diagnostic | null;
        WithDescription(description: string | null): Kusto.Language.Diagnostic | null;
        WithMessage(message: string | null): Kusto.Language.Diagnostic | null;
        WithLocation(location: Kusto.Language.Syntax.SyntaxElement | null): Kusto.Language.Diagnostic | null;
        WithLocation$1(start: number, length: number): Kusto.Language.Diagnostic | null;
        WithLocationKind(locationKind: Kusto.Language.DiagnosticLocationKind): Kusto.Language.Diagnostic | null;
        equalsT(other: Kusto.Language.Diagnostic | null): boolean;
        equals(obj: any | null): boolean;
        getHashCode(): number;
    }
    interface DiagnosticFunc extends Function {
        prototype: Diagnostic;
        ctor: {
            new (code: string | null, message: string | null): Diagnostic
        };
        $ctor1: {
            new (code: string | null, category: string | null, severity: string | null, description: string | null): Diagnostic
        };
        $ctor2: {
            new (code: string | null, category: string | null, severity: string | null, description: string | null, message: string | null): Diagnostic
        };
        NoDiagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
    }
    var Diagnostic: DiagnosticFunc;

    interface DataManagerCommands {
    }
    interface DataManagerCommandsFunc extends Function {
        prototype: DataManagerCommands;
        new (): DataManagerCommands;
        ShowVersion: Kusto.Language.Symbols.CommandSymbol | null;
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.CommandSymbol> | null;
    }
    var DataManagerCommands: DataManagerCommandsFunc;

    interface ClusterManagerCommands {
    }
    interface ClusterManagerCommandsFunc extends Function {
        prototype: ClusterManagerCommands;
        new (): ClusterManagerCommands;
        ShowVersion: Kusto.Language.Symbols.CommandSymbol | null;
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.CommandSymbol> | null;
    }
    var ClusterManagerCommands: ClusterManagerCommandsFunc;

}

    /**
     * @memberof System
     * @callback System.Action
     * @param   {Kusto.Language.Syntax.SyntaxNode}       arg1    
     * @param   {Kusto.Language.Binding.SemanticInfo}    arg2
     * @return  {void}
     */

declare namespace Kusto.Language.Binding {
    /** @namespace Kusto.Language.Binding */

    /**
     * Represents the call site info needed used to identify a unique function call.
     *
     * @class Kusto.Language.Binding.CallSiteInfo
     * @implements  System.IEquatable$1
     */
    interface CallSiteInfo extends System.IEquatable$1<Kusto.Language.Binding.CallSiteInfo> {
        /**
         * The signature of the function being called.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Binding.CallSiteInfo
         * @function Signature
         * @type Kusto.Language.Symbols.Signature
         */
        Signature: Kusto.Language.Symbols.Signature | null;
        /**
         * The parameters that make this call site unique.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Binding.CallSiteInfo
         * @function Parameters
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null;
        /**
         * The list of values corresponding to the parameters.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Binding.CallSiteInfo
         * @function Values
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Values: System.Collections.Generic.IReadOnlyList$1<any> | null;
        toString(): string | null;
        equalsT(other: Kusto.Language.Binding.CallSiteInfo | null): boolean;
        getHashCode(): number;
    }
    interface CallSiteInfoFunc extends Function {
        prototype: CallSiteInfo;
        new (signature: Kusto.Language.Symbols.Signature | null, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null, values: System.Collections.Generic.IReadOnlyList$1<any> | null): CallSiteInfo;
    }
    var CallSiteInfo: CallSiteInfoFunc;

    /**
     * Binding state that exists for the duration of the binder.
     *
     * @class Kusto.Language.Binding.LocalBindingCache
     */
    interface LocalBindingCache {
    }
    interface LocalBindingCacheFunc extends Function {
        prototype: LocalBindingCache;
        new (): LocalBindingCache;
    }
    var LocalBindingCache: LocalBindingCacheFunc;

    /**
     * Extended semantic information for function calls.
     *
     * @class Kusto.Language.Binding.FunctionCallInfo
     */
    interface FunctionCallInfo {
        /**
         * The function body facts associated with the called function.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Binding.FunctionCallInfo
         * @function Facts
         * @type Kusto.Language.FunctionBodyFacts
         */
        Facts: Kusto.Language.FunctionBodyFacts | null;
        /**
         * The expansion (analyzed syntax tree in context of call arguments) of the called function.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Binding.FunctionCallInfo
         * @function Expansion
         * @type Kusto.Language.FunctionCallExpansion
         */
        Expansion: Kusto.Language.FunctionCallExpansion | null;
        HasErrors: boolean;
        Diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
    }
    interface FunctionCallInfoFunc extends Function {
        prototype: FunctionCallInfo;
        $ctor1: {
            new (expander: {(): Kusto.Language.FunctionCallExpansion} | null, facts: Kusto.Language.FunctionBodyFacts | null): FunctionCallInfo
        };
        ctor: {
            new (expansion: Kusto.Language.FunctionCallExpansion | null, facts: Kusto.Language.FunctionBodyFacts | null): FunctionCallInfo
        };
    }
    var FunctionCallInfo: FunctionCallInfoFunc;

    /**
     * Represents the result information for a function or operator invocation.
     *
     * @class Kusto.Language.Binding.FunctionCallResult
     */
    interface FunctionCallResult {
        /**
         * The result type of this signature.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Binding.FunctionCallResult
         * @function Type
         * @type Kusto.Language.Symbols.TypeSymbol
         */
        Type: Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * The extended semantic info for the function call.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Binding.FunctionCallResult
         * @function Info
         * @type Kusto.Language.Binding.FunctionCallInfo
         */
        Info: Kusto.Language.Binding.FunctionCallInfo | null;
        $clone(to: Kusto.Language.Binding.FunctionCallResult): Kusto.Language.Binding.FunctionCallResult;
    }
    interface FunctionCallResultFunc extends Function {
        prototype: FunctionCallResult;
        $ctor1: {
            new (type: Kusto.Language.Symbols.TypeSymbol | null, info: Kusto.Language.Binding.FunctionCallInfo | null): FunctionCallResult
        };
        new (): FunctionCallResult;
        ctor: {
            new (): FunctionCallResult
        };
        op_Implicit(type: Kusto.Language.Symbols.TypeSymbol): Kusto.Language.Binding.FunctionCallResult;
    }
    var FunctionCallResult: FunctionCallResultFunc;

    /**
     * Models nested scoping for let variables and function parameters.
     *
     * @class Kusto.Language.Binding.LocalScope
     */
    interface LocalScope {
        /**
         * Returns true if this scope has a matching symbol.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {string}     name
         * @return  {boolean}
         */
        HasSymbol$1(name: string | null): boolean;
        /**
         * Returns true if this scope has a matching symbol.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {string}                                name     
         * @param   {Kusto.Language.Symbols.SymbolMatch}    match
         * @return  {boolean}
         */
        HasSymbol$2(name: string | null, match: Kusto.Language.Symbols.SymbolMatch): boolean;
        /**
         * Returns true if this scope has a matching symbol.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {Kusto.Language.Symbols.SymbolMatch}    match
         * @return  {boolean}
         */
        HasSymbol(match: Kusto.Language.Symbols.SymbolMatch): boolean;
        /**
         * Returns true if this scope or any outer scope has a matching symbol.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {string}     name
         * @return  {boolean}
         */
        ContainsSymbol$1(name: string | null): boolean;
        /**
         * Returns true if this scope or any outer scope has a matching symbol.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {string}                                name     
         * @param   {Kusto.Language.Symbols.SymbolMatch}    match
         * @return  {boolean}
         */
        ContainsSymbol$2(name: string | null, match: Kusto.Language.Symbols.SymbolMatch): boolean;
        /**
         * Returns true if this scope or any outer scope has a matching symbol.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {Kusto.Language.Symbols.SymbolMatch}    match
         * @return  {boolean}
         */
        ContainsSymbol(match: Kusto.Language.Symbols.SymbolMatch): boolean;
        /**
         * Makes a copy of this {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @return  {Kusto.Language.Binding.LocalScope}
         */
        Copy(): Kusto.Language.Binding.LocalScope | null;
        /**
         * Add a {@link } to the {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {Kusto.Language.Symbols.Symbol}    symbol
         * @return  {boolean}
         */
        AddSymbol(symbol: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Adds a collection of {@link } to the {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {System.Collections.Generic.IEnumerable$1}    symbols
         * @return  {void}
         */
        AddSymbols(symbols: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Symbol> | null): void;
        /**
         * Gets all the matching symbols in this scope and then any outer scopes.
         If any named matches are found in this scope, all other named matches from outer scopes are ignored.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {string}                                name       
         * @param   {Kusto.Language.Symbols.SymbolMatch}    match      
         * @param   {System.Collections.Generic.List$1}     symbols
         * @return  {void}
         */
        GetSymbols$1(name: string | null, match: Kusto.Language.Symbols.SymbolMatch, symbols: System.Collections.Generic.List$1<Kusto.Language.Symbols.Symbol> | null): void;
        /**
         * Gets all the matching symbols in this scope and then any outer scopes.
         If any named matches are found in this scope, all other named matches from outer scopes are ignored.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {string}                               name       
         * @param   {System.Collections.Generic.List$1}    symbols
         * @return  {void}
         */
        GetSymbols$2(name: string | null, symbols: System.Collections.Generic.List$1<Kusto.Language.Symbols.Symbol> | null): void;
        /**
         * Gets all the matching symbols in the scope, and then from any outer scopes.
         If any named matches are found in this scope, all other named matches from outer scopes are ignored.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {Kusto.Language.Symbols.SymbolMatch}    match      
         * @param   {System.Collections.Generic.List$1}     symbols
         * @return  {void}
         */
        GetSymbols(match: Kusto.Language.Symbols.SymbolMatch, symbols: System.Collections.Generic.List$1<Kusto.Language.Symbols.Symbol> | null): void;
    }
    interface LocalScopeFunc extends Function {
        prototype: LocalScope;
        /**
         * Create a new instance of a {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.LocalScope
         * @memberof Kusto.Language.Binding.LocalScope
         * @param   {Kusto.Language.Binding.LocalScope}    outerScope    An optional outer scope.
         * @return  {void}
         */
        ctor: {
            new (outerScope: Kusto.Language.Binding.LocalScope | null): LocalScope
        };
    }
    var LocalScope: LocalScopeFunc;

    /**
     * The kind of match that an argument can have with its corresponding signature parameter.
     *
     * @class Kusto.Language.Binding.ParameterMatchKind
     */
    enum ParameterMatchKind {
        None = 0,
        Unknown = 1,
        Dynamic = 2,
        Compatible = 3,
        Promoted = 4,
        NotType = 5,
        OneOfMany = 6,
        Scalar = 7,
        Summable = 8,
        Orderable = 9,
        Number = 10,
        Integer = 11,
        Tabular = 12,
        Table = 13,
        Database = 14,
        Cluster = 15,
        Exact = 16
    }

    /**
     * A class that manages building a list of columns in a projection
     *
     * @class Kusto.Language.Binding.ProjectionBuilder
     */
    interface ProjectionBuilder {
        /**
         * Clears the {@link } so it can be used again.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ProjectionBuilder
         * @memberof Kusto.Language.Binding.ProjectionBuilder
         * @return  {void}
         */
        Clear(): void;
        /**
         * Gets the projected columns.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ProjectionBuilder
         * @memberof Kusto.Language.Binding.ProjectionBuilder
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetProjection(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        /**
         * Adds one or more columns to the projection list, renaming them if necessary.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ProjectionBuilder
         * @memberof Kusto.Language.Binding.ProjectionBuilder
         * @param   {System.Collections.Generic.IEnumerable$1}    columns        The list of columns to add.
         * @param   {boolean}                                     declare        If true, then consider these columns to have been explicitly declared, so further declarations cannot use their name.
         * @param   {boolean}                                     doNotRepeat    If true then ignore any further attempt to add these columns.
         * @return  {void}
         */
        AddRange(columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null, declare?: boolean, doNotRepeat?: boolean): void;
        /**
         * Ignore any further attempt to add this column to the projection.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ProjectionBuilder
         * @memberof Kusto.Language.Binding.ProjectionBuilder
         * @param   {Kusto.Language.Symbols.ColumnSymbol}    column
         * @return  {void}
         */
        DoNotAdd(column: Kusto.Language.Symbols.ColumnSymbol | null): void;
        /**
         * Ignore any further attempt to add any of these columns to the projection.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ProjectionBuilder
         * @memberof Kusto.Language.Binding.ProjectionBuilder
         * @param   {System.Collections.Generic.IEnumerable$1}    columns
         * @return  {void}
         */
        DoNotAddAny(columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null): void;
        /**
         * True if an attempt to add the column will succeed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ProjectionBuilder
         * @memberof Kusto.Language.Binding.ProjectionBuilder
         * @param   {Kusto.Language.Symbols.ColumnSymbol}    column
         * @return  {boolean}
         */
        CanAdd(column: Kusto.Language.Symbols.ColumnSymbol | null): boolean;
        /**
         * Adds a new undeclared column to the projection list.
         The name will be changed if it conflicts with a previously added column.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ProjectionBuilder
         * @memberof Kusto.Language.Binding.ProjectionBuilder
         * @param   {Kusto.Language.Symbols.ColumnSymbol}    column         The column to add.
         * @param   {string}                                 baseName       The base name to use when generating an alternate unique name for this column.
         * @param   {boolean}                                replace        If true, allow this column to replace any previously added column with the same name.
         * @param   {boolean}                                doNotRepeat    If true, ignore any further attempts to add this column.
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        Add(column: Kusto.Language.Symbols.ColumnSymbol | null, baseName?: string | null, replace?: boolean, doNotRepeat?: boolean): Kusto.Language.Symbols.ColumnSymbol | null;
        /**
         * The column is added if a column with the same name is not already declared.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ProjectionBuilder
         * @memberof Kusto.Language.Binding.ProjectionBuilder
         * @param   {Kusto.Language.Symbols.ColumnSymbol}    column         The column to declare.
         * @param   {System.Collections.Generic.List$1}      diagnostics    The diagnostics list to add diagnostics to if the column's name has already been declared.
         * @param   {Kusto.Language.Syntax.SyntaxNode}       location       The syntax location used to associate with diagnostics.
         * @param   {boolean}                                replace        If true, allow this column to replace any previously added column with the same name, but not specifically declared.
         * @return  {void}
         */
        Declare(column: Kusto.Language.Symbols.ColumnSymbol | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, location: Kusto.Language.Syntax.SyntaxNode | null, replace?: boolean): void;
        /**
         * Rename a column that exists from a previous query source.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ProjectionBuilder
         * @memberof Kusto.Language.Binding.ProjectionBuilder
         * @param   {string}                                 oldName        The name of a column already in the projection
         * @param   {string}                                 newName        The new name for the column.
         * @param   {System.Collections.Generic.List$1}      diagnostics    The diagnostics list to add diagnostics to if the column's name has already been declared.
         * @param   {Kusto.Language.Syntax.SyntaxNode}       location       The syntax location used to associate with any diagnostics added.
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        Rename(oldName: string | null, newName: string | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, location: Kusto.Language.Syntax.SyntaxNode | null): Kusto.Language.Symbols.ColumnSymbol | null;
    }
    interface ProjectionBuilderFunc extends Function {
        prototype: ProjectionBuilder;
        new (): ProjectionBuilder;
    }
    var ProjectionBuilder: ProjectionBuilderFunc;

    /**
     * Scope kind.
     *
     * @class Kusto.Language.Binding.ScopeKind
     */
    enum ScopeKind {
        Normal = 0,
        Aggregate = 1,
        PlugIn = 2,
        Option = 3
    }

    interface ColumnMap {
        /**
         * Adds a list of columns to the map.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ColumnMap
         * @memberof Kusto.Language.Binding.ColumnMap
         * @param   {System.Collections.Generic.IEnumerable$1}    columns
         * @return  {void}
         */
        AddRange(columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null): void;
        /**
         * Adds a column to the map.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ColumnMap
         * @memberof Kusto.Language.Binding.ColumnMap
         * @param   {Kusto.Language.Symbols.ColumnSymbol}    column
         * @return  {void}
         */
        Add(column: Kusto.Language.Symbols.ColumnSymbol | null): void;
        /**
         * Removes all the columns with the specified name from the map.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ColumnMap
         * @memberof Kusto.Language.Binding.ColumnMap
         * @param   {string}    name
         * @return  {void}
         */
        Remove(name: string | null): void;
        /**
         * Returns true if there is at least one column with the specified name in the map.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ColumnMap
         * @memberof Kusto.Language.Binding.ColumnMap
         * @param   {string}     name
         * @return  {boolean}
         */
        HasColumns(name: string | null): boolean;
        /**
         * Returns true if the columns with the specified name have more than one type.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ColumnMap
         * @memberof Kusto.Language.Binding.ColumnMap
         * @param   {string}     name
         * @return  {boolean}
         */
        HasMultipleTypes(name: string | null): boolean;
        /**
         * Gets all the types for all the columns with the specified name.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ColumnMap
         * @memberof Kusto.Language.Binding.ColumnMap
         * @param   {string}                                        name
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetTypes(name: string | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null;
        /**
         * Returns true if there are more than one column with the given name in the map.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ColumnMap
         * @memberof Kusto.Language.Binding.ColumnMap
         * @param   {string}     name
         * @return  {boolean}
         */
        HasMutipleColumns(name: string | null): boolean;
        /**
         * Returns true if there is more than one columns with the specified name and type.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ColumnMap
         * @memberof Kusto.Language.Binding.ColumnMap
         * @param   {string}                               name    
         * @param   {Kusto.Language.Symbols.TypeSymbol}    type
         * @return  {boolean}
         */
        HasMultipleColumns(name: string | null, type: Kusto.Language.Symbols.TypeSymbol | null): boolean;
        /**
         * Gets all the columns with the specified name.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ColumnMap
         * @memberof Kusto.Language.Binding.ColumnMap
         * @param   {string}                                      name
         * @return  {System.Collections.Generic.IEnumerable$1}
         */
        GetColumns(name: string | null): System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        /**
         * Gets all the columns with the specified name and type.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.ColumnMap
         * @memberof Kusto.Language.Binding.ColumnMap
         * @param   {string}                                        name    
         * @param   {Kusto.Language.Symbols.TypeSymbol}             type
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetColumns$1(name: string | null, type: Kusto.Language.Symbols.TypeSymbol | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
    }
    interface ColumnMapFunc extends Function {
        prototype: ColumnMap;
        ctor: {
            new (unifyDynamicTypes: boolean): ColumnMap
        };
        $ctor1: {
            new (columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null, unifyDynamicTypes: boolean): ColumnMap
        };
    }
    var ColumnMap: ColumnMapFunc;

    /**
     * The binder performs general semantic analysis of the syntax tree, 
     identifying the symbols corresponding to named references, 
     the return types of operations and generating error diagnostics.
     *
     * @class Kusto.Language.Binding.Binder
     */
    interface Binder {
        RowScopeOrEmpty: Kusto.Language.Symbols.TableSymbol | null;
        RightRowScopeOrEmpty: Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Adds the symbols to the current local scope.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IEnumerable$1}    locals
         * @return  {void}
         */
        /**
         * Sets the context of the binder to the specified node and text position.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxNode}    contextNode    
         * @param   {number}                              position
         * @return  {void}
         */
        /**
         * Binds a function call or pattern invocation expression
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    functionCall
         * @return  {Kusto.Language.Binding.SemanticInfo}
         */
        /**
         * Binds a function call
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    functionCall    
         * @param   {Kusto.Language.Symbols.FunctionSymbol}           fn
         * @return  {Kusto.Language.Binding.SemanticInfo}
         */
        /**
         * Binds a function call
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    functionCall     
         * @param   {Kusto.Language.Symbols.FunctionSymbol}           fn               
         * @param   {System.Collections.Generic.IReadOnlyList$1}      arguments        
         * @param   {System.Collections.Generic.IReadOnlyList$1}      argumentTypes
         * @return  {Kusto.Language.Binding.SemanticInfo}
         */
        /**
         * Binds a pattern
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    functionCall    
         * @param   {Kusto.Language.Symbols.PatternSymbol}            pattern
         * @return  {Kusto.Language.Binding.SemanticInfo}
         */
        /**
         * Gets the set of pattern signatures that match the arguments.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    signatures            
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments             
         * @param   {System.Collections.Generic.List$1}             matchingSignatures
         * @return  {void}
         */
        /**
         * Determines if the pattern signature matches the arguments.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.PatternSignature}       signature    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments    
         * @param   {boolean}                                       exact
         * @return  {boolean}
         */
        /**
         * Gets the return type of the set of pattern signatures.
         The return type is either the type of the signature body if there is no path,
         or a database symbol containing variables named for each path.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    signatures
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Extracts the argument expressions and their result types into two separate lists.
         Handles the special case of the implicit invoke operator argument
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    functionCall     
         * @param   {System.Collections.Generic.List$1}               arguments        
         * @param   {System.Collections.Generic.List$1}               argumentTypes
         * @return  {void}
         */
        /**
         * Gets the parameters that correspond to the arguments.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    functionCall    
         * @param   {System.Collections.Generic.List$1}               parameters
         * @return  {void}
         */
        /**
         * Gets the result information for the function call or operator invocation when invoked with the specified arguments.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes    
         * @param   {Kusto.Language.Syntax.SyntaxElement}           location         
         * @param   {System.Collections.Generic.List$1}             diagnostics
         * @return  {Kusto.Language.Binding.FunctionCallResult}
         */
        /**
         * Gets the result information of the function call or operator invocation when invoked with the specified arguments.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature             
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments             
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes         
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentParameters    
         * @param   {Kusto.Language.Syntax.SyntaxElement}           location              
         * @param   {System.Collections.Generic.List$1}             diagnostics
         * @return  {Kusto.Language.Binding.FunctionCallResult}
         */
        /**
         * Gets the cluster for the specified name, or an empty open cluster.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                                  name           
         * @param   {Kusto.Language.Syntax.SyntaxNode}        location       
         * @param   {System.Collections.Generic.List$1}       diagnostics
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        /**
         * Gets the result for an invocation of the database() function
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                               nameOrPattern    
         * @param   {Kusto.Language.Syntax.SyntaxNode}     location         
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Gets the named database or group of databases
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                               nameOrPattern     
         * @param   {Kusto.Language.Symbols.Symbol}        clusterOrGroup
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Gets the result of calling the table() function in the current context.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                               nameOrPattern    
         * @param   {Kusto.Language.Syntax.SyntaxNode}     location         
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Gets the matching table or group of tables
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                               nameOrPattern      
         * @param   {Kusto.Language.Symbols.Symbol}        databaseOrGroup
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Gets all matching tables
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                                   nameOrPattern    
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}    database         
         * @param   {System.Collections.Generic.List$1}        matches
         * @return  {void}
         */
        /**
         * Gets the result of calling the external_table() function in the current context.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                               name           
         * @param   {Kusto.Language.Syntax.SyntaxNode}     location       
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Gets the result of calling the materialized_view() function in the current context.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                               name           
         * @param   {Kusto.Language.Syntax.SyntaxNode}     location       
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Gets the result of calling the entity_group() function in the current context.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                                       name           
         * @param   {Kusto.Language.Syntax.SyntaxNode}             location       
         * @param   {System.Collections.Generic.List$1}            diagnostics
         * @return  {Kusto.Language.Binding.FunctionCallResult}
         */
        /**
         * Gets the result of calling the stored_query_result() function in the current context.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                               name           
         * @param   {Kusto.Language.Syntax.SyntaxNode}     location       
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Gets the common return type across a set of signatures, or error if there is no common type.
         The common return type is the return type all the signatures share, or the error type if the return types differ.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    signatures       
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes    
         * @param   {Kusto.Language.Syntax.SyntaxElement}           location
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Gets the signatures that best match the specified arguments.
         If there is no best match, then multiple signatures will be returned.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    signatures                  
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments                   
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes               
         * @param   {System.Collections.Generic.List$1}             result                      
         * @param   {boolean}                                       requireAllArgumentsMatch
         * @return  {void}
         */
        /**
         * Determines if {@link } is a better match than {@link } for the specified arguments.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature1       
         * @param   {Kusto.Language.Symbols.Signature}              signature2       
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes
         * @return  {number}
         */
        /**
         * Determines the number of arguments that match their corresponding signature parameter.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes
         * @return  {number}
         */
        /**
         * Gets {@link } for computed functions that have bodies that must be parsed and bound before understanding the result type.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes
         * @return  {Kusto.Language.Binding.FunctionCallResult}
         */
        /**
         * Returns true if the function call at this callsite allows caching of result type.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Binding.CallSiteInfo}    callSite
         * @return  {boolean}
         */
        /**
         * Gets the result type for the callsite, if cached.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Binding.CallSiteInfo}    callSiteInfo    
         * @param   {Kusto.Language.Symbols.TypeSymbol}      type
         * @return  {boolean}
         */
        /**
         * Adds the result type for the call site to the cache
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Binding.CallSiteInfo}    callsite      
         * @param   {Kusto.Language.Symbols.TypeSymbol}      resultType
         * @return  {void}
         */
        /**
         * Gets the inline expansion of a function call
         *
         * @instance
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes
         * @return  {Kusto.Language.FunctionCallExpansion}
         */
        /**
         * Gets the cached expansion for the function at the call site.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Binding.CallSiteInfo}     callsite     
         * @param   {Kusto.Language.FunctionCallExpansion}    expansion
         * @return  {boolean}
         */
        /**
         * Returns true if the function can have its expansions cached.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Binding.CallSiteInfo}    callSite
         * @return  {boolean}
         */
        /**
         * Return true if the name can refer to a local tabular variable in dynamic scope.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}     name
         * @return  {boolean}
         */
        /**
         * Returns true if any of the names can refer to a local tabular variable in dynamic scope.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    names
         * @return  {boolean}
         */
        /**
         * Adds expansion to either global or local cache.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Binding.CallSiteInfo}     callsite     
         * @param   {Kusto.Language.FunctionCallExpansion}    expansion
         * @return  {void}
         */
        /**
         * True if the signature is declared by a symbol that is part of database known to the current {@link }
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}    signature
         * @return  {boolean}
         */
        /**
         * Gets the 'expansion' call site info for a function call.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments    
         * @param   {Kusto.Language.Binding.CallSiteInfo}           callSite
         * @return  {boolean}
         */
        /**
         * Gets the correpsonding set of parameters and argument values
         for the function call.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature     
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments     
         * @param   {System.Collections.Generic.List$1}             parameters    
         * @param   {System.Collections.Generic.List$1}             values
         * @return  {boolean}
         */
        /**
         * Gets the set of local variables to use instead of argument parameters for the expansion of the function call.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Gets the {@link } for the function invocation
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}    expr
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        /**
         * Gets or creates an open cluster symbol of the given name.
         This is used when a cluster('...') call does not map to a known cluster.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                                  name
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        /**
         * Gets or creates an open database symbol of the given name.
         This is primarily used for database('...') of an unknown database within an open cluster.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                                   name       
         * @param   {Kusto.Language.Symbols.ClusterSymbol}     cluster
         * @return  {Kusto.Language.Symbols.DatabaseSymbol}
         */
        /**
         * Gets or creates an open table symbol of the given name.
         This is primarily used for db.Table or db.table('...') of an unknown table within an open database.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                                   name        
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}    database
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        /**
         * Gets or creates an inferred column symbol and associates it with the specified open table.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                                 name     
         * @param   {Kusto.Language.Symbols.TableSymbol}     table
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        /**
         * Gets all the declared or inferred columns for the specified table.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.TableSymbol}    table      
         * @param   {System.Collections.Generic.List$1}     columns
         * @return  {void}
         */
        /**
         * Gets all the declared or inferred columns for the specified table.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.TableSymbol}            table
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetDeclaredAndInferredColumns(table: Kusto.Language.Symbols.TableSymbol | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        /**
         * Gets the declared or inferred column of the given name for the specified table.
         If the column is not declared and the table is open, a new column is inferred with the given name.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.TableSymbol}     table     
         * @param   {string}                                 name      
         * @param   {Kusto.Language.Symbols.ColumnSymbol}    column
         * @return  {boolean}
         */
        TryGetDeclaredOrInferredColumn(table: Kusto.Language.Symbols.TableSymbol | null, name: string | null, column: {v: Kusto.Language.Symbols.ColumnSymbol | null}): boolean;
        /**
         * Gets a tuple with the same columns (declared and inferred) as the table.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.TableSymbol}    table
         * @return  {Kusto.Language.Symbols.TupleSymbol}
         */
        /**
         * Returns true if the list of tables can be cached globally (tied by global state cache)
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    tables
         * @return  {boolean}
         */
        /**
         * A table that contains all the columns in the specified list of tables, unified on name.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    tables
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        /**
         * A table that contains all the columns in the specified list of tables, unified on name and type.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    tables
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        /**
         * A table that contains the common columns in the specified list of tables.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    tables
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        ApplyDirective(directive: Kusto.Language.Syntax.Directive | null, diagnostics?: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null): void;
        /**
         * Gets the {@link } in effect for all of a function's arguments.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    fc            
         * @param   {Kusto.Language.Binding.ScopeKind}                outerScope
         * @return  {Kusto.Language.Binding.ScopeKind}
         */
        /**
         * Gets the {@link } in effect for a function's specific argument.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    fc            
         * @param   {number}                                          position      
         * @param   {Kusto.Language.Binding.ScopeKind}                outerScope
         * @return  {Kusto.Language.Binding.ScopeKind}
         */
        /**
         * Gets the type referenced in the type expression.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.TypeExpression}    typeExpression    
         * @param   {System.Collections.Generic.List$1}       diagnostics
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Checks that the data value expressions have the types corresponding to the columns.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxList$1}    expressions    
         * @param   {System.Collections.Generic.List$1}     columns        
         * @param   {System.Collections.Generic.List$1}     diagnostics
         * @return  {void}
         */
        /**
         * Checks if the expression is any dynamic type.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}     expression     
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {boolean}
         */
        /**
         * Check if the expression is a literal.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}     expression     
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {boolean}
         */
        /**
         * Check if the expression is a scalar literal, but not a token literal.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}     expression     
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {boolean}
         */
        /**
         * Check if the expression is a non-empty literal string.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}     expression     
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {boolean}
         */
        /**
         * Return true if the expression a literal that matches one of the values.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}              expression       
         * @param   {System.Collections.Generic.IReadOnlyList$1}    values           
         * @param   {boolean}                                       caseSensitive
         * @return  {boolean}
         */
        /**
         * Checks if the expression is a literal that matches one of the listed values.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}              expression       
         * @param   {System.Collections.Generic.IReadOnlyList$1}    values           
         * @param   {boolean}                                       caseSensitive    
         * @param   {System.Collections.Generic.List$1}             diagnostics
         * @return  {boolean}
         */
        /**
         * Returns true if the expression is a token literal with one of the listed values.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}              expression       
         * @param   {System.Collections.Generic.IReadOnlyList$1}    values           
         * @param   {boolean}                                       caseSensitive
         * @return  {boolean}
         */
        /**
         * Checks if the expression is a token literal that matches one of the listed values.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}              expression       
         * @param   {System.Collections.Generic.IReadOnlyList$1}    values           
         * @param   {boolean}                                       caseSensitive    
         * @param   {System.Collections.Generic.List$1}             diagnostics
         * @return  {boolean}
         */
        /**
         * Checks if the token has one of the listed text values.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxToken}             token            
         * @param   {System.Collections.Generic.IReadOnlyList$1}    values           
         * @param   {boolean}                                       caseSensitive    
         * @param   {System.Collections.Generic.List$1}             diagnostics
         * @return  {boolean}
         */
        /**
         * Checks if the expression is a constant.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}     expression     
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {boolean}
         */
        /**
         * Returns true if the expression is either not constant or does not match any of the listed values.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}              expression       
         * @param   {System.Collections.Generic.IReadOnlyList$1}    values           
         * @param   {boolean}                                       caseSensitive
         * @return  {boolean}
         */
        /**
         * Checks if the expression is a constant that matches one of the listed values.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}              expression       
         * @param   {System.Collections.Generic.IReadOnlyList$1}    values           
         * @param   {boolean}                                       caseSensitive    
         * @param   {System.Collections.Generic.List$1}             diagnostics
         * @return  {boolean}
         */
        /**
         * Checks if the expression is a constant that matches the specified value.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}     expression       
         * @param   {System.Object}                        value            
         * @param   {boolean}                              caseSensitive    
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {boolean}
         */
        /**
         * Checks if the expression is either not constant does not match any of the listed values.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}              expression       
         * @param   {System.Collections.Generic.IReadOnlyList$1}    values           
         * @param   {boolean}                                       caseSensitive    
         * @param   {System.Collections.Generic.List$1}             diagnostics
         * @return  {boolean}
         */
        /**
         * Checks if the expression is either not constant does not match the specified value.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}     expression       
         * @param   {System.Object}                        value            
         * @param   {boolean}                              caseSensitive    
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {boolean}
         */
        /**
         * Checks the invocation of a method/operator signature
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes    
         * @param   {Kusto.Language.Syntax.SyntaxElement}           location         
         * @param   {System.Collections.Generic.List$1}             dx
         * @return  {void}
         */
        /**
         * True if named arguments are allowed for this signature.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}    signature
         * @return  {boolean}
         */
        /**
         * True if the signature allows implicit argument coercion.
         Most built-in function require arguments to explicitly match types of parameters.
         User functions, however, allow implicit coercion of scalar arguments.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}    signature
         * @return  {boolean}
         */
        /**
         * Returns true if the location is inside a database function body
         for the current database.
         *
         * @instance
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxNode}    location
         * @return  {boolean}
         */
        IsInsideCurrentDatabaseFunctionBody(location: Kusto.Language.Syntax.SyntaxNode | null): boolean;
        /**
         * Gets the name of the current database function declaration the location is inside of.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxNode}    location
         * @return  {string}
         */
        /**
         * Returns true if the function symbol we are currently analyzing
         is from the current database.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        /**
         * Returns the result type for the binary operator given the two argument types.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.OperatorKind}    kind           
         * @param   {Kusto.Language.Symbols.TypeSymbol}      leftType       
         * @param   {Kusto.Language.Symbols.TypeSymbol}      rightType      
         * @param   {Kusto.Language.Syntax.SyntaxElement}    location       
         * @param   {System.Collections.Generic.List$1}      diagnostics
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Returns the result type for the binary operator given the two argument expressions.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.OperatorKind}    kind           
         * @param   {Kusto.Language.Syntax.Expression}       left           
         * @param   {Kusto.Language.Syntax.Expression}       right          
         * @param   {Kusto.Language.Syntax.SyntaxElement}    location       
         * @param   {System.Collections.Generic.List$1}      diagnostics
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        /**
         * Creates projection columns for all the expressions.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxList$1}          expressions    
         * @param   {Kusto.Language.Binding.ProjectionBuilder}    builder        
         * @param   {System.Collections.Generic.List$1}           diagnostics    
         * @param   {number}                                      style          
         * @param   {boolean}                                     doNotRepeat
         * @return  {void}
         */
        /**
         * Creates projection columns for the expression.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}            expression     
         * @param   {Kusto.Language.Binding.ProjectionBuilder}    builder        
         * @param   {System.Collections.Generic.List$1}           diagnostics    
         * @param   {number}                                      style          
         * @param   {boolean}                                     doNotRepeat    
         * @param   {Kusto.Language.Symbols.TypeSymbol}           columnType     
         * @param   {string}                                      columnName
         * @return  {void}
         */
        /**
         * Adds all the columns declared by the symbol to the list of columns.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Symbol}        symbol     
         * @param   {System.Collections.Generic.List$1}    columns
         * @return  {void}
         */
        /**
         * Add the table (or all the tables in a group) to the list of tables.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Symbol}        symbol    
         * @param   {System.Collections.Generic.List$1}    tables
         * @return  {void}
         */
        /**
         * Gets a table representing the aggregate set of columns in scope
         for find operator expressions.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.FindOperator}    node
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        /**
         * Get the set of tables applicable to the find operator.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.FindOperator}            node
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Gets the set of columns from the tables applicable to the search operator.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SearchOperator}    node
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        /**
         * Gets the set of tables used by the search operator
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SearchOperator}          node
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Gets all the tables accessible to the current operator through osmosis,
         not from pipe operator or sub clause.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Gets all the result tables of declared views in scope
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.List$1}    views
         * @return  {void}
         */
        /**
         * Gets the set of tables referenced by the entity expressions, 
         where each expression is a reference to a table or group of tables.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxList$1}            list
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Gets the columns referenced by all expressions
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxList$1}    expressions    
         * @param   {System.Collections.Generic.List$1}     columns        
         * @param   {System.Collections.Generic.List$1}     diagnostics
         * @return  {void}
         */
        /**
         * Gets the columns referenced by one expression.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}     expression     
         * @param   {System.Collections.Generic.List$1}    columns        
         * @param   {System.Collections.Generic.List$1}    diagnostics
         * @return  {void}
         */
        /**
         * Gets all the columns referenced in the syntax tree.
         *
         * @instance
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxNode}     node       
         * @param   {System.Collections.Generic.List$1}    columns
         * @return  {void}
         */
    }
    interface BinderFunc extends Function {
        prototype: Binder;
        AsContextBuilder: Kusto.Language.Binding.Binder.AsContextBuilderFunc;
        ContextBuilder: Kusto.Language.Binding.Binder.ContextBuilderFunc;
        NodeBinder: Kusto.Language.Binding.Binder.NodeBinderFunc;
        SearchPredicateBinder: Kusto.Language.Binding.Binder.SearchPredicateBinderFunc;
        TreeBinder: Kusto.Language.Binding.Binder.TreeBinderFunc;
        ProjectionStyle: Binder.ProjectionStyleFunc;
        ColumnOrdering: Binder.ColumnOrderingFunc;
        BinderAvailabilityContext: Kusto.Language.Binding.Binder.BinderAvailabilityContextFunc;
        BinderCallContext: Kusto.Language.Binding.Binder.BinderCallContextFunc;
        /**
         * Do semantic analysis over the syntax tree.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxTree}            tree                  
         * @param   {Kusto.Language.GlobalState}                  globals               
         * @param   {Kusto.Language.Binding.LocalBindingCache}    localBindingCache     
         * @param   {System.Action}                               semanticInfoSetter    
         * @param   {Kusto.Language.Utils.CancellationToken}      cancellationToken
         * @return  {boolean}
         */
        TryBind(tree: Kusto.Language.Syntax.SyntaxTree | null, globals: Kusto.Language.GlobalState | null, localBindingCache?: Kusto.Language.Binding.LocalBindingCache | null, semanticInfoSetter?: {(arg1: Kusto.Language.Syntax.SyntaxNode, arg2: Kusto.Language.Binding.SemanticInfo): void} | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): boolean;
        /**
         * Do semantic analysis over the body of a called function.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxTree}            bodyTree           
         * @param   {Kusto.Language.Binding.Binder}               outer              
         * @param   {Kusto.Language.Symbols.ClusterSymbol}        currentCluster     
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}       currentDatabase    
         * @param   {Kusto.Language.Symbols.FunctionSymbol}       currentFunction    
         * @param   {Kusto.Language.Binding.LocalScope}           outerScope         
         * @param   {System.Collections.Generic.IEnumerable$1}    locals
         * @return  {boolean}
         */
        TryBindCalledFunctionBody(bodyTree: Kusto.Language.Syntax.SyntaxTree | null, outer: Kusto.Language.Binding.Binder | null, currentCluster: Kusto.Language.Symbols.ClusterSymbol | null, currentDatabase: Kusto.Language.Symbols.DatabaseSymbol | null, currentFunction: Kusto.Language.Symbols.FunctionSymbol | null, outerScope: Kusto.Language.Binding.LocalScope | null, locals: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Symbol> | null): boolean;
        /**
         * Gets the computed return type for functions specified with a body or declaration.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature        
         * @param   {Kusto.Language.GlobalState}                    globals          
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetComputedReturnType(signature: Kusto.Language.Symbols.Signature | null, globals: Kusto.Language.GlobalState | null, argumentTypes?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Gets the symbol that would be referenced at the specified location.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxTree}          tree                 
         * @param   {number}                                    position             
         * @param   {string}                                    name                 
         * @param   {Kusto.Language.GlobalState}                globals              
         * @param   {Kusto.Language.Symbols.SymbolMatch}        match                
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken
         * @return  {Kusto.Language.Symbols.Symbol}
         */
        GetReferencedSymbol(tree: Kusto.Language.Syntax.SyntaxTree | null, position: number, name: string | null, globals: Kusto.Language.GlobalState | null, match: Kusto.Language.Symbols.SymbolMatch, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Symbols.Symbol | null;
        /**
         * Gets the {@link } that is in scope as the implicit set of columns accessible within a query.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxTree}          tree                 
         * @param   {number}                                    position             
         * @param   {Kusto.Language.GlobalState}                globals              
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        GetRowScope(tree: Kusto.Language.Syntax.SyntaxTree | null, position: number, globals: Kusto.Language.GlobalState | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Gets all the symbols that are in scope at the text position.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxTree}          tree                 
         * @param   {number}                                    position             
         * @param   {Kusto.Language.GlobalState}                globals              
         * @param   {Kusto.Language.Symbols.SymbolMatch}        match                
         * @param   {Kusto.Language.IncludeFunctionKind}        include              
         * @param   {System.Collections.Generic.List$1}         list                 
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken
         * @return  {void}
         */
        GetSymbolsInScope(tree: Kusto.Language.Syntax.SyntaxTree | null, position: number, globals: Kusto.Language.GlobalState | null, match: Kusto.Language.Symbols.SymbolMatch, include: Kusto.Language.IncludeFunctionKind, list: System.Collections.Generic.List$1<Kusto.Language.Symbols.Symbol> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
        /**
         * Gets the value of the literal if the expression is a literal or refers to literal
         *
         * @static
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}    expression    
         * @param   {Kusto.Language.Syntax.ValueInfo}     value
         * @return  {boolean}
         */
        /**
         * Determines if the name is a pattern (contains a *)
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}     name
         * @return  {boolean}
         */
        /**
         * Gets the matching databases in the specified cluster
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {string}                                  nameOrPattern    
         * @param   {Kusto.Language.Symbols.ClusterSymbol}    cluster          
         * @param   {System.Collections.Generic.List$1}       matches
         * @return  {void}
         */
        /**
         * Determines if {@link } can be promoted to {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.TypeSymbol}    type1    
         * @param   {Kusto.Language.Symbols.TypeSymbol}    type2
         * @return  {boolean}
         */
        IsPromotable(type1: Kusto.Language.Symbols.TypeSymbol | null, type2: Kusto.Language.Symbols.TypeSymbol | null): boolean;
        /**
         * Promotes int to long
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.TypeSymbol}    symbol
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        Promote(symbol: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Determines the kind of match that the argument has with its corresponding signature parameter.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature                        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentParameters               
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes                    
         * @param   {Kusto.Language.Symbols.Parameter}              parameter                        
         * @param   {Kusto.Language.Syntax.Expression}              argument                         
         * @param   {Kusto.Language.Symbols.TypeSymbol}             argumentType                     
         * @param   {boolean}                                       allowImplicitArgumentCoercion
         * @return  {Kusto.Language.Binding.ParameterMatchKind}
         */
        GetParameterMatchKind(signature: Kusto.Language.Symbols.Signature | null, argumentParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null, argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, parameter: Kusto.Language.Symbols.Parameter | null, argument: Kusto.Language.Syntax.Expression | null, argumentType: Kusto.Language.Symbols.TypeSymbol | null, allowImplicitArgumentCoercion: boolean): Kusto.Language.Binding.ParameterMatchKind;
        /**
         * Gets a 'result type' callsite for a function call.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}              signature              
         * @param   {System.Collections.Generic.IReadOnlyList$1}    dependentParameters    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments              
         * @param   {Kusto.Language.Binding.CallSiteInfo}           callSiteInfo
         * @return  {boolean}
         */
        /**
         * Gets the value of a function call argument 
         that can be used as a callsite value.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}    arg      
         * @param   {System.Object}                       value
         * @return  {boolean}
         */
        /**
         * Builds an expanded declaration of the function customized given the arguments used at the call site.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}    signature
         * @return  {string}
         */
        /**
         * Adds all referenced parameters of the specified signature found in the node sub-tree to 
         the {@link } dependent parameters list.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.FunctionBodyFacts}    facts        
         * @param   {Kusto.Language.Symbols.Signature}    signature    
         * @param   {Kusto.Language.Syntax.SyntaxNode}    root
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        /**
         * Gets all referenced parameters in the expression sub-tree
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Signature}     signature     
         * @param   {Kusto.Language.Syntax.SyntaxNode}     root          
         * @param   {System.Collections.Generic.List$1}    parameters
         * @return  {void}
         */
        /**
         * Gets the {@link } from the given <b />.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxNode}      node
         * @return  {Kusto.Language.Symbols.GraphSymbol}
         */
        HasDynamicPrimitives(types: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null): boolean;
        GetUnwrappedDynamicPrimitives(types: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, unwrapped: System.Collections.Generic.List$1<Kusto.Language.Symbols.TypeSymbol> | null): void;
        /**
         * Finds the {@link } associated with the location.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxNode}                   location
         * @return  {Kusto.Language.Symbols.EntityGroupElementSymbol}
         */
        GetMacroExpandScope(location: Kusto.Language.Syntax.SyntaxNode | null): Kusto.Language.Symbols.EntityGroupElementSymbol | null;
        /**
         * Gets the index of the child in the parent or -1 if none found
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxElement}    parent      
         * @param   {number}                                 position
         * @return  {number}
         */
        /**
         * True if a value of type {@link } can be assigned to a parameter of type {@link }
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.Symbol}        targetType           
         * @param   {Kusto.Language.Symbols.Symbol}        sourceType           
         * @param   {Kusto.Language.Symbols.Conversion}    allowedConversion
         * @return  {boolean}
         */
        /**
         * Returns true if the value in the list of values.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    values           
         * @param   {System.Object}                                 value            
         * @param   {boolean}                                       caseSensitive
         * @return  {boolean}
         */
        /**
         * Returns true if the expression is a constant that matches one of the listed values.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}              expression       
         * @param   {System.Collections.Generic.IReadOnlyList$1}    values           
         * @param   {boolean}                                       caseSensitive
         * @return  {boolean}
         */
        /**
         * True if any argument type is an error type or unknown.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes
         * @return  {boolean}
         */
        /**
         * Returns true if the location is inside a create function command.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxNode}    location
         * @return  {boolean}
         */
        /**
         * Returns the name of the function that the create function command is creating.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxNode}    location
         * @return  {string}
         */
        /**
         * Gets the text of the custom node named 'FunctionName'
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.CustomNode}    node
         * @return  {string}
         */
        /**
         * True if member access operators (dot) on this apply to the members
         as opposed to matching the members themselves.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.GroupSymbol}    group
         * @return  {boolean}
         */
        /**
         * Determine if the element (a name) is in a known tabular context
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxElement}    element
         * @return  {boolean}
         */
        /**
         * Gets all the column names specified as literals, dynamic arrays or from column_names_of
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}     expression    
         * @param   {System.Collections.Generic.List$1}    names
         * @return  {void}
         */
        /**
         * Returns a column symbol representing the result of the expression.
         If the expression just references a column, then it returns that column.
         Otherwise it creates new column symbol.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}       expression     
         * @param   {string}                                 name           
         * @param   {Kusto.Language.Symbols.TypeSymbol}      type           
         * @param   {string}                                 defaultName
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        GetResultColumn(expr: Kusto.Language.Syntax.Expression | null): Kusto.Language.Symbols.ColumnSymbol | null;
        IsConversionFunction$1(expr: Kusto.Language.Syntax.Expression | null): boolean;
        IsConversionFunction(fn: Kusto.Language.Symbols.FunctionSymbol | null): boolean;
        /**
         * Gets the name that a function call expression will use as its column name in a projection.
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    fc             
         * @param   {string}                                          defaultName    
         * @param   {Kusto.Language.Symbols.TableSymbol}              row
         * @return  {string}
         */
        /**
         * Gets the name that an expression will use for its column name in a projection.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}      expr           
         * @param   {string}                                defaultName    
         * @param   {Kusto.Language.Symbols.TableSymbol}    row
         * @return  {string}
         */
        GetExpressionResultName(expr: Kusto.Language.Syntax.Expression | null, defaultName?: string | null, row?: Kusto.Language.Symbols.TableSymbol | null): string | null;
        /**
         * Gets the declared name of a {@link } or null.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}    expr
         * @return  {string}
         */
        GetExpressionDeclaredName(expr: Kusto.Language.Syntax.Expression | null): string | null;
        /**
         * Gets the expression underlying adornments such as name assignment or ordering
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}    expression
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetUnderlyingExpression(expression: Kusto.Language.Syntax.Expression | null): Kusto.Language.Syntax.Expression | null;
        /**
         * Gets the name that an expression will use for its column name in a graph projection.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.Expression}    expression
         * @return  {string}
         */
        GetGraphExpressionResultName(expression: Kusto.Language.Syntax.Expression | null): string | null;
        /**
         * Converts a list of columns into a list of unique (unioned columns)
         Columns with the same name and type will be merged into one column.
         Columns with the same name but different type will be renamed to include the type name as a suffix.
         *
         * @static
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.List$1}    columns
         * @return  {void}
         */
        /**
         * Converts list of columns to a list of columns with distinct names.
         If multiple columns have the same name, but differ in type, the resulting single columns has the type dynamic.
         *
         * @static
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.List$1}    columns
         * @return  {void}
         */
        /**
         * Converts a list of columns into a list of unique columns by name.
         Columns with the same name will be renamed to include a numeric suffix.
         *
         * @static
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.List$1}    columns
         * @return  {void}
         */
        /**
         * Gets the columns that appear in both list of columns (by name)
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columnsA    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columnsB    
         * @param   {System.Collections.Generic.List$1}             result
         * @return  {void}
         */
        /**
         * Gets the columns that appear in both list of columns (by name)
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columnsA    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columnsB    
         * @param   {System.Collections.Generic.List$1}             result
         * @return  {void}
         */
        /**
         * Gets the columns that appear in all tables.
         *
         * @static
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {System.Collections.Generic.IReadOnlyList$1}    tables    
         * @param   {System.Collections.Generic.List$1}             common
         * @return  {void}
         */
        /**
         * Gets a column with a unique name (given a set of already used names).
         *
         * @static
         * @private
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Symbols.ColumnSymbol}     column         
         * @param   {Kusto.Language.Utils.UniqueNameTable}    uniqueNames
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        /**
         * Creates column symbols for all the columns declared in the schema.
         *
         * @static
         * @public
         * @this Kusto.Language.Binding.Binder
         * @memberof Kusto.Language.Binding.Binder
         * @param   {Kusto.Language.Syntax.SyntaxList$1}    schemaColumns    
         * @param   {System.Collections.Generic.List$1}     columns          
         * @param   {System.Collections.Generic.List$1}     diagnostics
         * @return  {void}
         */
        CreateColumnsFromRowSchema(schemaColumns: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NameAndTypeDeclaration>> | null, columns: System.Collections.Generic.List$1<Kusto.Language.Symbols.ColumnSymbol> | null, diagnostics?: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null): void;
    }
    var Binder: BinderFunc;
    module Binder {
        /**
         * A context builder that searches for 'as' operator definitions and adds them to the local scope
         *
         * @class Kusto.Language.Binding.Binder.AsContextBuilder
         * @augments Kusto.Language.Syntax.DefaultSyntaxVisitor
         */
        interface AsContextBuilder extends Kusto.Language.Syntax.DefaultSyntaxVisitor {
            VisitAsOperator(node: Kusto.Language.Syntax.AsOperator | null): void;
            VisitFunctionBody(node: Kusto.Language.Syntax.FunctionBody | null): void;
        }
        interface AsContextBuilderFunc extends Function {
            prototype: AsContextBuilder;
            new (position: number, binder: Kusto.Language.Binding.Binder | null): AsContextBuilder;
        }

        /**
         * The {@link } is a {@link } that puts
         a {@link } into the same state that existed for a given {@link } during 
         the full semantic analysis.
         *
         * @class Kusto.Language.Binding.Binder.ContextBuilder
         * @augments Kusto.Language.Syntax.DefaultSyntaxVisitor
         */
        interface ContextBuilder extends Kusto.Language.Syntax.DefaultSyntaxVisitor {
            VisitPathExpression(node: Kusto.Language.Syntax.PathExpression | null): void;
            VisitElementExpression(node: Kusto.Language.Syntax.ElementExpression | null): void;
            VisitParenthesizedExpression(node: Kusto.Language.Syntax.ParenthesizedExpression | null): void;
            VisitFunctionCallExpression(node: Kusto.Language.Syntax.FunctionCallExpression | null): void;
            VisitPipeExpression(node: Kusto.Language.Syntax.PipeExpression | null): void;
            VisitEvaluateOperator(node: Kusto.Language.Syntax.EvaluateOperator | null): void;
            VisitSummarizeOperator(node: Kusto.Language.Syntax.SummarizeOperator | null): void;
            VisitMacroExpandOperator(node: Kusto.Language.Syntax.MacroExpandOperator | null): void;
            VisitNamedParameter(node: Kusto.Language.Syntax.NamedParameter | null): void;
            VisitMakeSeriesOperator(node: Kusto.Language.Syntax.MakeSeriesOperator | null): void;
            VisitTopNestedClause(node: Kusto.Language.Syntax.TopNestedClause | null): void;
            VisitFunctionDeclaration(node: Kusto.Language.Syntax.FunctionDeclaration | null): void;
            VisitFunctionBody(node: Kusto.Language.Syntax.FunctionBody | null): void;
            VisitQueryBlock(node: Kusto.Language.Syntax.QueryBlock | null): void;
            VisitCommandBlock(node: Kusto.Language.Syntax.CommandBlock | null): void;
            VisitPatternDeclaration(node: Kusto.Language.Syntax.PatternDeclaration | null): void;
            VisitJoinOperator(node: Kusto.Language.Syntax.JoinOperator | null): void;
            VisitLookupOperator(node: Kusto.Language.Syntax.LookupOperator | null): void;
            VisitUnionOperator(node: Kusto.Language.Syntax.UnionOperator | null): void;
            VisitFindOperator(node: Kusto.Language.Syntax.FindOperator | null): void;
            VisitSearchOperator(node: Kusto.Language.Syntax.SearchOperator | null): void;
            VisitMvApplyOperator(node: Kusto.Language.Syntax.MvApplyOperator | null): void;
            VisitInvokeOperator(node: Kusto.Language.Syntax.InvokeOperator | null): void;
            VisitPartitionOperator(node: Kusto.Language.Syntax.PartitionOperator | null): void;
            VisitScanOperator(node: Kusto.Language.Syntax.ScanOperator | null): void;
            VisitInlineExternalTableExpression(node: Kusto.Language.Syntax.InlineExternalTableExpression | null): void;
            VisitPartialCommand(node: Kusto.Language.Syntax.PartialCommand | null): void;
            VisitCustomCommand(node: Kusto.Language.Syntax.CustomCommand | null): void;
            VisitToScalarExpression(node: Kusto.Language.Syntax.ToScalarExpression | null): void;
            VisitToTableExpression(node: Kusto.Language.Syntax.ToTableExpression | null): void;
            VisitSetOptionStatement(node: Kusto.Language.Syntax.SetOptionStatement | null): void;
            VisitMaterializedViewCombineExpression(node: Kusto.Language.Syntax.MaterializedViewCombineExpression | null): void;
            VisitMakeGraphTableAndKeyClause(node: Kusto.Language.Syntax.MakeGraphTableAndKeyClause | null): void;
            VisitGraphMatchOperator(node: Kusto.Language.Syntax.GraphMatchOperator | null): void;
            VisitGraphShortestPathsOperator(node: Kusto.Language.Syntax.GraphShortestPathsOperator | null): void;
        }
        interface ContextBuilderFunc extends Function {
            prototype: ContextBuilder;
            new (binder: Kusto.Language.Binding.Binder | null, position: number): ContextBuilder;
            /**
             * The node ends in a list or optional element
             *
             * @static
             * @private
             * @this Kusto.Language.Binding.Binder.ContextBuilder
             * @memberof Kusto.Language.Binding.Binder.ContextBuilder
             * @param   {Kusto.Language.Syntax.SyntaxNode}    node
             * @return  {boolean}
             */
            /**
             * The node has a missing element as its last child.
             *
             * @static
             * @private
             * @this Kusto.Language.Binding.Binder.ContextBuilder
             * @memberof Kusto.Language.Binding.Binder.ContextBuilder
             * @param   {Kusto.Language.Syntax.SyntaxNode}    node
             * @return  {boolean}
             */
        }

        /**
         * The {@link } is a {@link } that computes
         the {@link } foreach each kind of {@link }.
         *
         * @private
         * @class Kusto.Language.Binding.Binder.NodeBinder
         * @augments Kusto.Language.Syntax.SyntaxVisitor$1
         */
        interface NodeBinder extends Kusto.Language.Syntax.SyntaxVisitor$1<Kusto.Language.Binding.SemanticInfo> {
            RowScopeOrEmpty: Kusto.Language.Symbols.TableSymbol | null;
            RightRowScopeOrEmpty: Kusto.Language.Symbols.TableSymbol | null;
            VisitNameAndTypeDeclaration(node: Kusto.Language.Syntax.NameAndTypeDeclaration | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFunctionDeclaration(node: Kusto.Language.Syntax.FunctionDeclaration | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFunctionParameter(node: Kusto.Language.Syntax.FunctionParameter | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitDefaultValueDeclaration(node: Kusto.Language.Syntax.DefaultValueDeclaration | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFunctionBody(node: Kusto.Language.Syntax.FunctionBody | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFunctionParameters(node: Kusto.Language.Syntax.FunctionParameters | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPatternStatement(node: Kusto.Language.Syntax.PatternStatement | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPatternDeclaration(node: Kusto.Language.Syntax.PatternDeclaration | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMaterializeExpression(node: Kusto.Language.Syntax.MaterializeExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitNameDeclaration(node: Kusto.Language.Syntax.NameDeclaration | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitLiteralExpression(node: Kusto.Language.Syntax.LiteralExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitTypeOfLiteralExpression(node: Kusto.Language.Syntax.TypeOfLiteralExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitDynamicExpression(node: Kusto.Language.Syntax.DynamicExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitCompoundStringLiteralExpression(node: Kusto.Language.Syntax.CompoundStringLiteralExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitBinaryExpression(node: Kusto.Language.Syntax.BinaryExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPrefixUnaryExpression(node: Kusto.Language.Syntax.PrefixUnaryExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitInExpression(node: Kusto.Language.Syntax.InExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitHasAnyExpression(node: Kusto.Language.Syntax.HasAnyExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitHasAllExpression(node: Kusto.Language.Syntax.HasAllExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitBetweenExpression(node: Kusto.Language.Syntax.BetweenExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitToScalarExpression(node: Kusto.Language.Syntax.ToScalarExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitToTableExpression(node: Kusto.Language.Syntax.ToTableExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitTokenName(node: Kusto.Language.Syntax.TokenName | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitBracketedName(node: Kusto.Language.Syntax.BracketedName | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitBracedName(node: Kusto.Language.Syntax.BracedName | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitWildcardedName(node: Kusto.Language.Syntax.WildcardedName | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitBracketedWildcardedName(node: Kusto.Language.Syntax.BracketedWildcardedName | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitNameReference(node: Kusto.Language.Syntax.NameReference | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitBracketedExpression(node: Kusto.Language.Syntax.BracketedExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPathExpression(node: Kusto.Language.Syntax.PathExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitElementExpression(node: Kusto.Language.Syntax.ElementExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFunctionCallExpression(node: Kusto.Language.Syntax.FunctionCallExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitParenthesizedExpression(node: Kusto.Language.Syntax.ParenthesizedExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitEntityGroup(node: Kusto.Language.Syntax.EntityGroup | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitOrderedExpression(node: Kusto.Language.Syntax.OrderedExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSimpleNamedExpression(node: Kusto.Language.Syntax.SimpleNamedExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitCompoundNamedExpression(node: Kusto.Language.Syntax.CompoundNamedExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPipeExpression(node: Kusto.Language.Syntax.PipeExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitAtExpression(node: Kusto.Language.Syntax.AtExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitDataScopeExpression(node: Kusto.Language.Syntax.DataScopeExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitExpressionCouple(node: Kusto.Language.Syntax.ExpressionCouple | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitExpressionList(node: Kusto.Language.Syntax.ExpressionList | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitForkExpression(node: Kusto.Language.Syntax.ForkExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPartitionSubquery(node: Kusto.Language.Syntax.PartitionSubquery | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPartitionQuery(node: Kusto.Language.Syntax.PartitionQuery | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPartitionScope(node: Kusto.Language.Syntax.PartitionScope | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitJsonArrayExpression(node: Kusto.Language.Syntax.JsonArrayExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitJsonObjectExpression(node: Kusto.Language.Syntax.JsonObjectExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitJsonPair(node: Kusto.Language.Syntax.JsonPair | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitList(list: Kusto.Language.Syntax.SyntaxList | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSeparatedElement(separatedElement: Kusto.Language.Syntax.SeparatedElement | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeSeriesExpression(node: Kusto.Language.Syntax.MakeSeriesExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitNamedParameter(node: Kusto.Language.Syntax.NamedParameter | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPackExpression(node: Kusto.Language.Syntax.PackExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPatternMatch(node: Kusto.Language.Syntax.PatternMatch | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPatternPathValue(node: Kusto.Language.Syntax.PatternPathValue | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPatternPathParameter(node: Kusto.Language.Syntax.PatternPathParameter | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPrimitiveTypeExpression(node: Kusto.Language.Syntax.PrimitiveTypeExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSchemaTypeExpression(node: Kusto.Language.Syntax.SchemaTypeExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitQueryBlock(node: Kusto.Language.Syntax.QueryBlock | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSkippedTokens(node: Kusto.Language.Syntax.SkippedTokens | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitRenameList(node: Kusto.Language.Syntax.RenameList | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitNameReferenceList(node: Kusto.Language.Syntax.NameReferenceList | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitStarExpression(node: Kusto.Language.Syntax.StarExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitTypedColumnReference(node: Kusto.Language.Syntax.TypedColumnReference | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitCustom(node: Kusto.Language.Syntax.CustomNode | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMaterializedViewCombineExpression(node: Kusto.Language.Syntax.MaterializedViewCombineExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMaterializedViewCombineNameClause(node: Kusto.Language.Syntax.MaterializedViewCombineNameClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMaterializedViewCombineClause(node: Kusto.Language.Syntax.MaterializedViewCombineClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitBadQueryOperator(node: Kusto.Language.Syntax.BadQueryOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFilterOperator(node: Kusto.Language.Syntax.FilterOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitTakeOperator(node: Kusto.Language.Syntax.TakeOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSampleOperator(node: Kusto.Language.Syntax.SampleOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSampleDistinctOperator(node: Kusto.Language.Syntax.SampleDistinctOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitCountOperator(node: Kusto.Language.Syntax.CountOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitProjectOperator(node: Kusto.Language.Syntax.ProjectOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitProjectAwayOperator(node: Kusto.Language.Syntax.ProjectAwayOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitProjectKeepOperator(node: Kusto.Language.Syntax.ProjectKeepOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitProjectRenameOperator(node: Kusto.Language.Syntax.ProjectRenameOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitProjectReorderOperator(node: Kusto.Language.Syntax.ProjectReorderOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitProjectByNamesOperator(node: Kusto.Language.Syntax.ProjectByNamesOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitExtendOperator(node: Kusto.Language.Syntax.ExtendOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSummarizeOperator(node: Kusto.Language.Syntax.SummarizeOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitDistinctOperator(node: Kusto.Language.Syntax.DistinctOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitAssertSchemaOperator(node: Kusto.Language.Syntax.AssertSchemaOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitTopOperator(node: Kusto.Language.Syntax.TopOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitTopHittersOperator(node: Kusto.Language.Syntax.TopHittersOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitTopNestedOperator(node: Kusto.Language.Syntax.TopNestedOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitConsumeOperator(node: Kusto.Language.Syntax.ConsumeOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitExecuteAndCacheOperator(node: Kusto.Language.Syntax.ExecuteAndCacheOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitRowSchema(node: Kusto.Language.Syntax.RowSchema | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitEvaluateRowSchema(node: Kusto.Language.Syntax.EvaluateRowSchema | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitDataTableExpression(node: Kusto.Language.Syntax.DataTableExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitContextualDataTableExpression(node: Kusto.Language.Syntax.ContextualDataTableExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitExternalDataExpression(node: Kusto.Language.Syntax.ExternalDataExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitInlineExternalTableExpression(node: Kusto.Language.Syntax.InlineExternalTableExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitDateTimePattern(node: Kusto.Language.Syntax.DateTimePattern | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSortOperator(node: Kusto.Language.Syntax.SortOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSerializeOperator(node: Kusto.Language.Syntax.SerializeOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitAsOperator(node: Kusto.Language.Syntax.AsOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitForkOperator(node: Kusto.Language.Syntax.ForkOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPartitionByOperator(node: Kusto.Language.Syntax.PartitionByOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPartitionByIdClause(node: Kusto.Language.Syntax.PartitionByIdClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPartitionOperator(node: Kusto.Language.Syntax.PartitionOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSearchOperator(node: Kusto.Language.Syntax.SearchOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFindOperator(node: Kusto.Language.Syntax.FindOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitUnionOperator(node: Kusto.Language.Syntax.UnionOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitLookupOperator(node: Kusto.Language.Syntax.LookupOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitJoinOperator(node: Kusto.Language.Syntax.JoinOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitRangeOperator(node: Kusto.Language.Syntax.RangeOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFacetOperator(node: Kusto.Language.Syntax.FacetOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeSeriesOperator(node: Kusto.Language.Syntax.MakeSeriesOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMvExpandOperator(node: Kusto.Language.Syntax.MvExpandOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMvExpandExpression(node: Kusto.Language.Syntax.MvExpandExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMvApplyOperator(node: Kusto.Language.Syntax.MvApplyOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMvApplyExpression(node: Kusto.Language.Syntax.MvApplyExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMvApplySubqueryExpression(node: Kusto.Language.Syntax.MvApplySubqueryExpression | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPrintOperator(node: Kusto.Language.Syntax.PrintOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitReduceByOperator(node: Kusto.Language.Syntax.ReduceByOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitRenderOperator(node: Kusto.Language.Syntax.RenderOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitParseWhereOperator(node: Kusto.Language.Syntax.ParseWhereOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitParseOperator(node: Kusto.Language.Syntax.ParseOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitParseKvWithClause(node: Kusto.Language.Syntax.ParseKvWithClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitParseKvOperator(node: Kusto.Language.Syntax.ParseKvOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitInvokeOperator(node: Kusto.Language.Syntax.InvokeOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitEvaluateOperator(node: Kusto.Language.Syntax.EvaluateOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGetSchemaOperator(node: Kusto.Language.Syntax.GetSchemaOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitScanOperator(node: Kusto.Language.Syntax.ScanOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitScanOrderByClause(node: Kusto.Language.Syntax.ScanOrderByClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitScanPartitionByClause(node: Kusto.Language.Syntax.ScanPartitionByClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitScanDeclareClause(node: Kusto.Language.Syntax.ScanDeclareClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitScanAssignment(node: Kusto.Language.Syntax.ScanAssignment | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitScanStep(node: Kusto.Language.Syntax.ScanStep | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitScanStepOutput(node: Kusto.Language.Syntax.ScanStepOutput | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitScanComputationClause(node: Kusto.Language.Syntax.ScanComputationClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMacroExpandScopeReferenceName(node: Kusto.Language.Syntax.MacroExpandScopeReferenceName | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMacroExpandOperator(node: Kusto.Language.Syntax.MacroExpandOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeGraphOperator(node: Kusto.Language.Syntax.MakeGraphOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeGraphWithTablesAndKeysClause(node: Kusto.Language.Syntax.MakeGraphWithTablesAndKeysClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeGraphWithImplicitIdClause(node: Kusto.Language.Syntax.MakeGraphWithImplicitIdClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeGraphTableAndKeyClause(node: Kusto.Language.Syntax.MakeGraphTableAndKeyClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeGraphPartitionedByClause(node: Kusto.Language.Syntax.MakeGraphPartitionedByClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphMatchOperator(node: Kusto.Language.Syntax.GraphMatchOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphShortestPathsOperator(node: Kusto.Language.Syntax.GraphShortestPathsOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphMatchPattern(node: Kusto.Language.Syntax.GraphMatchPattern | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphMatchPatternNode(node: Kusto.Language.Syntax.GraphMatchPatternNode | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphMatchPatternEdge(node: Kusto.Language.Syntax.GraphMatchPatternEdge | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphMatchPatternEdgeRange(node: Kusto.Language.Syntax.GraphMatchPatternEdgeRange | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitWhereClause(node: Kusto.Language.Syntax.WhereClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitProjectClause(node: Kusto.Language.Syntax.ProjectClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphMarkComponentsOperator(node: Kusto.Language.Syntax.GraphMarkComponentsOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphWhereNodesOperator(node: Kusto.Language.Syntax.GraphWhereNodesOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphWhereEdgesOperator(node: Kusto.Language.Syntax.GraphWhereEdgesOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphToTableOperator(node: Kusto.Language.Syntax.GraphToTableOperator | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphToTableOutputClause(node: Kusto.Language.Syntax.GraphToTableOutputClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitGraphToTableAsClause(node: Kusto.Language.Syntax.GraphToTableAsClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitCountAsIdentifierClause(node: Kusto.Language.Syntax.CountAsIdentifierClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitDataScopeClause(node: Kusto.Language.Syntax.DataScopeClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitDefaultExpressionClause(node: Kusto.Language.Syntax.DefaultExpressionClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitExternalDataWithClause(node: Kusto.Language.Syntax.ExternalDataWithClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitInlineExternalTableKindClause(node: Kusto.Language.Syntax.InlineExternalTableKindClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitInlineExternalTablePathFormatPartitionColumnReference(node: Kusto.Language.Syntax.InlineExternalTablePathFormatPartitionColumnReference | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitInlineExternalTableDataFormatClause(node: Kusto.Language.Syntax.InlineExternalTableDataFormatClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitInlineExternalTablePathFormatClause(node: Kusto.Language.Syntax.InlineExternalTablePathFormatClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPartitionColumnDeclaration(node: Kusto.Language.Syntax.PartitionColumnDeclaration | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitInlineExternalTablePartitionClause(node: Kusto.Language.Syntax.InlineExternalTablePartitionClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitInlineExternalTableConnectionStringsClause(node: Kusto.Language.Syntax.InlineExternalTableConnectionStringsClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFacetWithOperatorClause(node: Kusto.Language.Syntax.FacetWithOperatorClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFacetWithExpressionClause(node: Kusto.Language.Syntax.FacetWithExpressionClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFindInClause(node: Kusto.Language.Syntax.FindInClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitFindProjectClause(node: Kusto.Language.Syntax.FindProjectClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitJoinOnClause(node: Kusto.Language.Syntax.JoinOnClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitJoinWhereClause(node: Kusto.Language.Syntax.JoinWhereClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeSeriesByClause(node: Kusto.Language.Syntax.MakeSeriesByClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeSeriesInRangeClause(node: Kusto.Language.Syntax.MakeSeriesInRangeClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeSeriesFromClause(node: Kusto.Language.Syntax.MakeSeriesFromClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeSeriesToClause(node: Kusto.Language.Syntax.MakeSeriesToClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeSeriesStepClause(node: Kusto.Language.Syntax.MakeSeriesStepClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeSeriesFromToStepClause(node: Kusto.Language.Syntax.MakeSeriesFromToStepClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMakeSeriesOnClause(node: Kusto.Language.Syntax.MakeSeriesOnClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMvExpandRowLimitClause(node: Kusto.Language.Syntax.MvExpandRowLimitClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMvApplyRowLimitClause(node: Kusto.Language.Syntax.MvApplyRowLimitClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitMvApplyContextIdClause(node: Kusto.Language.Syntax.MvApplyContextIdClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitNameEqualsClause(node: Kusto.Language.Syntax.NameEqualsClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitOrderingClause(node: Kusto.Language.Syntax.OrderingClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitOrderingNullsClause(node: Kusto.Language.Syntax.OrderingNullsClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitReduceByWithClause(node: Kusto.Language.Syntax.ReduceByWithClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitRenderWithClause(node: Kusto.Language.Syntax.RenderWithClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSummarizeByClause(node: Kusto.Language.Syntax.SummarizeByClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitTopHittersByClause(node: Kusto.Language.Syntax.TopHittersByClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitTopNestedClause(node: Kusto.Language.Syntax.TopNestedClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitTopNestedWithOthersClause(node: Kusto.Language.Syntax.TopNestedWithOthersClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitToTypeOfClause(node: Kusto.Language.Syntax.ToTypeOfClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitEvaluateSchemaClause(node: Kusto.Language.Syntax.EvaluateSchemaClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitAliasStatement(node: Kusto.Language.Syntax.AliasStatement | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitExpressionStatement(node: Kusto.Language.Syntax.ExpressionStatement | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitLetStatement(node: Kusto.Language.Syntax.LetStatement | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitQueryParametersStatement(node: Kusto.Language.Syntax.QueryParametersStatement | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitRestrictStatement(node: Kusto.Language.Syntax.RestrictStatement | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitSetOptionStatement(node: Kusto.Language.Syntax.SetOptionStatement | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitOptionValueClause(node: Kusto.Language.Syntax.OptionValueClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitCommandWithValueClause(node: Kusto.Language.Syntax.CommandWithValueClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitCommandWithPropertyListClause(node: Kusto.Language.Syntax.CommandWithPropertyListClause | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitBadCommand(node: Kusto.Language.Syntax.BadCommand | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitCommandAndSkippedTokens(node: Kusto.Language.Syntax.CommandAndSkippedTokens | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitCommandBlock(node: Kusto.Language.Syntax.CommandBlock | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitCustomCommand(node: Kusto.Language.Syntax.CustomCommand | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitPartialCommand(node: Kusto.Language.Syntax.PartialCommand | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitUnknownCommand(node: Kusto.Language.Syntax.UnknownCommand | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitDirectiveBlock(node: Kusto.Language.Syntax.DirectiveBlock | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitDirective(node: Kusto.Language.Syntax.Directive | null): Kusto.Language.Binding.SemanticInfo | null;
            VisitRestrictStatementWithClause(node: Kusto.Language.Syntax.RestrictStatementWithClause | null): Kusto.Language.Binding.SemanticInfo | null;
        }
        interface NodeBinderFunc extends Function {
            prototype: NodeBinder;
            JoinColumnPair: Kusto.Language.Binding.Binder.NodeBinder.JoinColumnPairFunc;
            new (binder: Kusto.Language.Binding.Binder | null): NodeBinder;
            /**
             * Get the name the expression will be assigned by a let statement
             it is part of, or empty string.
             *
             * @static
             * @private
             * @this Kusto.Language.Binding.Binder.NodeBinder
             * @memberof Kusto.Language.Binding.Binder.NodeBinder
             * @param   {Kusto.Language.Syntax.Expression}    expr
             * @return  {string}
             */
        }
        module NodeBinder {
            interface JoinColumnPair {
                Left: Kusto.Language.Symbols.ColumnSymbol | null;
                Right: Kusto.Language.Symbols.ColumnSymbol | null;
            }
            interface JoinColumnPairFunc extends Function {
                prototype: JoinColumnPair;
                new (left: Kusto.Language.Symbols.ColumnSymbol | null, right: Kusto.Language.Symbols.ColumnSymbol | null): JoinColumnPair;
            }
        }

        /**
         * The {@link } handles special binding logic for predicates used by search and find operators.
         *
         * @private
         * @class Kusto.Language.Binding.Binder.SearchPredicateBinder
         * @augments Kusto.Language.Syntax.DefaultSyntaxVisitor
         */
        interface SearchPredicateBinder extends Kusto.Language.Syntax.DefaultSyntaxVisitor {
            RowScopeOrEmpty: Kusto.Language.Symbols.TableSymbol | null;
            VisitStarExpression(node: Kusto.Language.Syntax.StarExpression | null): void;
            VisitLiteralExpression(node: Kusto.Language.Syntax.LiteralExpression | null): void;
            VisitNameReference(node: Kusto.Language.Syntax.NameReference | null): void;
            VisitParenthesizedExpression(node: Kusto.Language.Syntax.ParenthesizedExpression | null): void;
            VisitBinaryExpression(node: Kusto.Language.Syntax.BinaryExpression | null): void;
        }
        interface SearchPredicateBinderFunc extends Function {
            prototype: SearchPredicateBinder;
            new (binder: Kusto.Language.Binding.Binder | null, treeBinder: Kusto.Language.Binding.Binder.TreeBinder | null): SearchPredicateBinder;
        }

        /**
         * The {@link } is a {@link } that orchestrates binding the entire syntax tree.
         From the top down, it adjusts the {@link }'s state to determine symbols in scope for each node and its descendants, etc.
         From bottom up, it invokes the {@link } on each {@link } to evalute its {@link } if any.
         All child nodes are thus bound before any parent nodes.
         *
         * @private
         * @class Kusto.Language.Binding.Binder.TreeBinder
         * @augments Kusto.Language.Syntax.DefaultSyntaxVisitor
         */
        interface TreeBinder extends Kusto.Language.Syntax.DefaultSyntaxVisitor {
            VisitPathExpression(node: Kusto.Language.Syntax.PathExpression | null): void;
            VisitDynamicExpression(node: Kusto.Language.Syntax.DynamicExpression | null): void;
            VisitPipeExpression(node: Kusto.Language.Syntax.PipeExpression | null): void;
            VisitLookupOperator(node: Kusto.Language.Syntax.LookupOperator | null): void;
            VisitJoinOperator(node: Kusto.Language.Syntax.JoinOperator | null): void;
            VisitJoinOnClause(node: Kusto.Language.Syntax.JoinOnClause | null): void;
            VisitUnionOperator(node: Kusto.Language.Syntax.UnionOperator | null): void;
            VisitSummarizeOperator(node: Kusto.Language.Syntax.SummarizeOperator | null): void;
            VisitMacroExpandOperator(node: Kusto.Language.Syntax.MacroExpandOperator | null): void;
            VisitMakeSeriesOperator(node: Kusto.Language.Syntax.MakeSeriesOperator | null): void;
            VisitTopNestedClause(node: Kusto.Language.Syntax.TopNestedClause | null): void;
            VisitAsOperator(node: Kusto.Language.Syntax.AsOperator | null): void;
            VisitPartitionOperator(node: Kusto.Language.Syntax.PartitionOperator | null): void;
            VisitForkOperator(node: Kusto.Language.Syntax.ForkOperator | null): void;
            VisitMaterializedViewCombineExpression(node: Kusto.Language.Syntax.MaterializedViewCombineExpression | null): void;
            VisitParenthesizedExpression(node: Kusto.Language.Syntax.ParenthesizedExpression | null): void;
            VisitFunctionCallExpression(node: Kusto.Language.Syntax.FunctionCallExpression | null): void;
            VisitInvokeOperator(node: Kusto.Language.Syntax.InvokeOperator | null): void;
            VisitEvaluateOperator(node: Kusto.Language.Syntax.EvaluateOperator | null): void;
            VisitLetStatement(node: Kusto.Language.Syntax.LetStatement | null): void;
            VisitFunctionDeclaration(node: Kusto.Language.Syntax.FunctionDeclaration | null): void;
            VisitFunctionParameters(node: Kusto.Language.Syntax.FunctionParameters | null): void;
            VisitQueryParametersStatement(node: Kusto.Language.Syntax.QueryParametersStatement | null): void;
            VisitScanOperator(node: Kusto.Language.Syntax.ScanOperator | null): void;
            VisitRowSchema(node: Kusto.Language.Syntax.RowSchema | null): void;
            VisitEvaluateRowSchema(node: Kusto.Language.Syntax.EvaluateRowSchema | null): void;
            VisitInlineExternalTableExpression(node: Kusto.Language.Syntax.InlineExternalTableExpression | null): void;
            VisitPatternStatement(node: Kusto.Language.Syntax.PatternStatement | null): void;
            VisitPatternDeclaration(node: Kusto.Language.Syntax.PatternDeclaration | null): void;
            VisitAliasStatement(node: Kusto.Language.Syntax.AliasStatement | null): void;
            VisitFindOperator(node: Kusto.Language.Syntax.FindOperator | null): void;
            VisitSearchOperator(node: Kusto.Language.Syntax.SearchOperator | null): void;
            VisitMvApplyOperator(node: Kusto.Language.Syntax.MvApplyOperator | null): void;
            VisitNameReference(node: Kusto.Language.Syntax.NameReference | null): void;
            VisitCommandBlock(node: Kusto.Language.Syntax.CommandBlock | null): void;
            VisitToScalarExpression(node: Kusto.Language.Syntax.ToScalarExpression | null): void;
            VisitToTableExpression(node: Kusto.Language.Syntax.ToTableExpression | null): void;
            VisitMakeGraphOperator(node: Kusto.Language.Syntax.MakeGraphOperator | null): void;
            VisitMakeGraphTableAndKeyClause(node: Kusto.Language.Syntax.MakeGraphTableAndKeyClause | null): void;
            VisitGraphMatchOperator(node: Kusto.Language.Syntax.GraphMatchOperator | null): void;
            VisitGraphShortestPathsOperator(node: Kusto.Language.Syntax.GraphShortestPathsOperator | null): void;
            VisitGraphToTableOperator(node: Kusto.Language.Syntax.GraphToTableOperator | null): void;
        }
        interface TreeBinderFunc extends Function {
            prototype: TreeBinder;
            new (binder: Kusto.Language.Binding.Binder | null): TreeBinder;
            /**
             * Returns true if the node is part of a command syntax but not in the input/output query.
             *
             * @static
             * @private
             * @this Kusto.Language.Binding.Binder.TreeBinder
             * @memberof Kusto.Language.Binding.Binder.TreeBinder
             * @param   {Kusto.Language.Syntax.SyntaxNode}    node
             * @return  {boolean}
             */
        }

        interface ProjectionStyle {
        }
        interface ProjectionStyleFunc extends Function {
            prototype: ProjectionStyle;
            Default: number;
            Extend: number;
            Print: number;
            Rename: number;
            Replace: number;
            Reorder: number;
            Summarize: number;
            GraphMatch: number;
            ByNames: number;
        }

        interface ColumnOrdering {
        }
        interface ColumnOrderingFunc extends Function {
            prototype: ColumnOrdering;
            None: number;
            Ascending: number;
            Descending: number;
            GrannyAscending: number;
            GrannyDescending: number;
        }

        interface BinderAvailabilityContext extends Kusto.Language.Symbols.CustomAvailabilityContext {
            _location: Kusto.Language.Syntax.SyntaxNode | null;
            Location: Kusto.Language.Syntax.SyntaxNode | null;
        }
        interface BinderAvailabilityContextFunc extends Function {
            prototype: BinderAvailabilityContext;
            new (location: Kusto.Language.Syntax.SyntaxNode | null): BinderAvailabilityContext;
        }

        interface BinderCallContext extends Kusto.Language.Symbols.CustomReturnTypeContext {
            Location: Kusto.Language.Syntax.SyntaxNode | null;
            Arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null;
            ArgumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null;
            ArgumentParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null;
            Signature: Kusto.Language.Symbols.Signature | null;
            RowScope: Kusto.Language.Symbols.TableSymbol | null;
            Globals: Kusto.Language.GlobalState | null;
            CurrentCluster: Kusto.Language.Symbols.ClusterSymbol | null;
            CurrentDatabase: Kusto.Language.Symbols.DatabaseSymbol | null;
            CurrentFunction: Kusto.Language.Symbols.FunctionSymbol | null;
            GetReferencedSymbol(name: string | null): Kusto.Language.Symbols.Symbol | null;
            GetResultType(name: string | null): Kusto.Language.Symbols.TypeSymbol | null;
            GetResultName(expr: Kusto.Language.Syntax.Expression | null, defaultName?: string | null): string | null;
        }
        interface BinderCallContextFunc extends Function {
            prototype: BinderCallContext;
            new (binder: Kusto.Language.Binding.Binder | null, location: Kusto.Language.Syntax.SyntaxNode | null, $arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, argumentParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null, signature: Kusto.Language.Symbols.Signature | null): BinderCallContext;
        }
    }

    /**
     * Binding state that persists across multiple bindings (lifetime of {@link })
     *
     * @class Kusto.Language.Binding.GlobalBindingCache
     */
    interface GlobalBindingCache {
    }
    interface GlobalBindingCacheFunc extends Function {
        prototype: GlobalBindingCache;
        new (): GlobalBindingCache;
    }
    var GlobalBindingCache: GlobalBindingCacheFunc;

    /**
     * The semantic information associated with a {@link }.
     *
     * @class Kusto.Language.Binding.SemanticInfo
     */
    interface SemanticInfo {
        /**
         * The symbol referenced by the {@link },
         a column, function, operator, etc.
         May be null.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Binding.SemanticInfo
         * @function ReferencedSymbol
         * @type Kusto.Language.Symbols.Symbol
         */
        ReferencedSymbol: Kusto.Language.Symbols.Symbol | null;
        /**
         * The matching signature of the function or operator symbol referenced by the {@link }.
         May be null.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Binding.SemanticInfo
         * @function ReferencedSignature
         * @type Kusto.Language.Symbols.Signature
         */
        ReferencedSignature: Kusto.Language.Symbols.Signature | null;
        /**
         * The result type of the expression.
         May be null if the node is not an expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Binding.SemanticInfo
         * @function ResultType
         * @type Kusto.Language.Symbols.TypeSymbol
         */
        ResultType: Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * If true then the expression is considered constant.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Binding.SemanticInfo
         * @function IsConstant
         * @type boolean
         */
        IsConstant: boolean;
        /**
         * Diagnostics discovered during binding.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Binding.SemanticInfo
         * @function Diagnostics
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * The expansion of the function called
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Binding.SemanticInfo
         * @function CalledFunctionInfo
         * @type Kusto.Language.Binding.FunctionCallInfo
         */
        CalledFunctionInfo: Kusto.Language.Binding.FunctionCallInfo | null;
        /**
         * A list of alternate versions of the associated node with differing semantics (or null).
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Binding.SemanticInfo
         * @function Alternates
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Alternates: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxNode> | null;
        WithReferencedSymbol(symbol: Kusto.Language.Symbols.Symbol | null): Kusto.Language.Binding.SemanticInfo | null;
        WithReferencedSignature(signature: Kusto.Language.Symbols.Signature | null): Kusto.Language.Binding.SemanticInfo | null;
        WithResultType(type: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Binding.SemanticInfo | null;
        WithDiagnostics(diagnostics: System.Collections.Generic.IEnumerable$1<Kusto.Language.Diagnostic> | null): Kusto.Language.Binding.SemanticInfo | null;
        WithIsConstant(isConstant: boolean): Kusto.Language.Binding.SemanticInfo | null;
        WithCalledFunctionInfo(calledFunctionInfo: Kusto.Language.Binding.FunctionCallInfo | null): Kusto.Language.Binding.SemanticInfo | null;
        WithAlternates(alternates: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxNode> | null): Kusto.Language.Binding.SemanticInfo | null;
    }
    interface SemanticInfoFunc extends Function {
        prototype: SemanticInfo;
        $ctor3: {
            new (referencedSymbol: Kusto.Language.Symbols.Symbol | null, result: Kusto.Language.Symbols.TypeSymbol | null, diagnostics: System.Collections.Generic.IEnumerable$1<Kusto.Language.Diagnostic> | null, isConstant: boolean, calledFunctionInfo: Kusto.Language.Binding.FunctionCallInfo | null): SemanticInfo
        };
        $ctor1: {
            new (referencedSignature: Kusto.Language.Symbols.Signature | null, result: Kusto.Language.Symbols.TypeSymbol | null, diagnostics: System.Collections.Generic.IEnumerable$1<Kusto.Language.Diagnostic> | null, isConstant: boolean, calledFunctionInfo: Kusto.Language.Binding.FunctionCallInfo | null): SemanticInfo
        };
        $ctor5: {
            new (result: Kusto.Language.Symbols.TypeSymbol | null, diagnostics: System.Collections.Generic.IEnumerable$1<Kusto.Language.Diagnostic> | null, isConstant: boolean, calledFunctionInfo: Kusto.Language.Binding.FunctionCallInfo | null): SemanticInfo
        };
        $ctor2: {
            new (referencedSymbol: Kusto.Language.Symbols.Symbol | null, result: Kusto.Language.Symbols.TypeSymbol | null, diagnostic: Kusto.Language.Diagnostic | null): SemanticInfo
        };
        ctor: {
            new (referencedSignature: Kusto.Language.Symbols.Signature | null, result: Kusto.Language.Symbols.TypeSymbol | null, diagnostic: Kusto.Language.Diagnostic | null): SemanticInfo
        };
        $ctor4: {
            new (result: Kusto.Language.Symbols.TypeSymbol | null, diagnostic: Kusto.Language.Diagnostic | null): SemanticInfo
        };
        $ctor6: {
            new (diagnostics: System.Collections.Generic.IEnumerable$1<Kusto.Language.Diagnostic> | null): SemanticInfo
        };
        /**
         * A default {@link } for nodes that are determined to have not information.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Binding.SemanticInfo
         * @type Kusto.Language.Binding.SemanticInfo
         */
        Empty: Kusto.Language.Binding.SemanticInfo | null;
    }
    var SemanticInfo: SemanticInfoFunc;

}

    /**
     * @memberof Kusto.Language.Editor
     * @callback Kusto.Language.Editor.BlockSeparator
     * @param   {string}                                        text          
     * @param   {System.Collections.Generic.IReadOnlyList$1}    lineStarts
     * @return  {System.Collections.Generic.IReadOnlyList$1}
     */

declare namespace Kusto.Language.Editor {
    /** @namespace Kusto.Language.Editor */

    /**
     * A {@link } that offers a menu of alternative actions.
     *
     * @public
     * @class Kusto.Language.Editor.MenuAction
     * @augments Kusto.Language.Editor.CodeAction
     */
    interface MenuAction extends Kusto.Language.Editor.CodeAction {
        Actions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CodeAction> | null;
        WithActions$1(actions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CodeAction> | null): Kusto.Language.Editor.MenuAction | null;
        WithActions(actions: Kusto.Language.Editor.CodeAction[] | null): Kusto.Language.Editor.MenuAction | null;
    }
    interface MenuActionFunc extends Function {
        prototype: MenuAction;
        ctor: {
            new (title: string | null, description: string | null, actions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CodeAction> | null): MenuAction
        };
    }
    var MenuAction: MenuActionFunc;

    /**
     * An action taken by the client to change the text of the {@link }.
     *
     * @public
     * @class Kusto.Language.Editor.ChangeTextAction
     * @augments Kusto.Language.Editor.ResultAction
     */
    interface ChangeTextAction extends Kusto.Language.Editor.ResultAction {
        /**
         * A set of in order, non-overlapping edits, each relative to the original text.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ChangeTextAction
         * @function Changes
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Changes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null;
        /**
         * The new text after all the changes have been applied to the original text.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ChangeTextAction
         * @function ChangedText
         * @type string
         */
        ChangedText: string | null;
    }
    interface ChangeTextActionFunc extends Function {
        prototype: ChangeTextAction;
        /**
         * Constructs an action taken by the client to change the text of the {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.ChangeTextAction
         * @memberof Kusto.Language.Editor.ChangeTextAction
         * @param   {System.Collections.Generic.IReadOnlyList$1}    changes        
         * @param   {string}                                        changedText
         * @return  {void}
         */
        $ctor1: {
            new (changes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null, changedText: string | null): ChangeTextAction
        };
        /**
         * Constructs an action taken by the client to change the text of the {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.ChangeTextAction
         * @memberof Kusto.Language.Editor.ChangeTextAction
         * @param   {Kusto.Language.Editor.EditString}    editString
         * @return  {void}
         */
        ctor: {
            new (editString: Kusto.Language.Editor.EditString | null): ChangeTextAction
        };
    }
    var ChangeTextAction: ChangeTextActionFunc;

    interface CalledFunctionHasErrorsAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface CalledFunctionHasErrorsAnalyzerFunc extends Function {
        prototype: CalledFunctionHasErrorsAnalyzer;
        new (): CalledFunctionHasErrorsAnalyzer;
    }
    var CalledFunctionHasErrorsAnalyzer: CalledFunctionHasErrorsAnalyzerFunc;

    interface ActorUtilities {
    }
    interface ActorUtilitiesFunc extends Function {
        prototype: ActorUtilities;
        new (): ActorUtilities;
        /**
         * Get's the token near the position
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.KustoCode}             code        
         * @param   {number}                               position
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        GetTokenNear(code: Kusto.Language.KustoCode | null, position: number): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Gets the biggest node that fits within the range.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.KustoCode}            code      
         * @param   {number}                              start     
         * @param   {number}                              length
         * @return  {Kusto.Language.Syntax.SyntaxNode}
         */
        GetNodeInRange(code: Kusto.Language.KustoCode | null, start: number, length: number): Kusto.Language.Syntax.SyntaxNode | null;
        AdjustRangeToNode(code: Kusto.Language.KustoCode | null, start: {v: number}, length: {v: number}): void;
        /**
         * Adjusts the range to not include the leading and trailing trivia between tokens.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.KustoCode}    code      
         * @param   {System.Int32}                start     
         * @param   {System.Int32}                length
         * @return  {void}
         */
        TrimRangeTrivia(code: Kusto.Language.KustoCode | null, start: {v: number}, length: {v: number}): void;
        /**
         * Gets the adjusted range around the sequence of query operators in a pipe expression.
         Returns false if the range does not correctly surround a distinct sub query
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.KustoCode}    code      
         * @param   {System.Int32}                start     
         * @param   {System.Int32}                length
         * @return  {boolean}
         */
        TryGetAdjustedSubqueryRange(code: Kusto.Language.KustoCode | null, start: {v: number}, length: {v: number}): boolean;
        GetPipeOperatorOrExpressionFromRangeStart(pe: Kusto.Language.Syntax.PipeExpression | null, start: number): Kusto.Language.Syntax.Expression | null;
        GetPipeOperatorOrExpressionFromRangeEnd(pe: Kusto.Language.Syntax.PipeExpression | null, end: number): Kusto.Language.Syntax.Expression | null;
        IsFirstInQuery(expr: Kusto.Language.Syntax.Expression | null): boolean;
        /**
         * Gets the first named reference to the specified symbol within the syntax tree.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.SyntaxNode}         root      
         * @param   {Kusto.Language.Symbols.FunctionSymbol}    symbol
         * @return  {Kusto.Language.Syntax.NameReference}
         */
        GetFirstReference(root: Kusto.Language.Syntax.SyntaxNode | null, symbol: Kusto.Language.Symbols.FunctionSymbol | null): Kusto.Language.Syntax.NameReference | null;
        TryGetNearestTopLevelStatementInsertionPosition(code: Kusto.Language.KustoCode | null, position: number, insertPosition: {v: number}): boolean;
        TryGetNearestStatementInsertionPosition(code: Kusto.Language.KustoCode | null, position: number, insertPosition: {v: number}): boolean;
        /**
         * Gets the statement insertion position before the start of the specified node.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.SyntaxNode}    node
         * @return  {number}
         */
        GetEnclosingTopLevelStatement(code: Kusto.Language.KustoCode | null, position: number): Kusto.Language.Syntax.Statement | null;
        GetEnclosingStatementOrFunctionBodyExpression(code: Kusto.Language.KustoCode | null, position: number): Kusto.Language.Syntax.SyntaxNode | null;
        IsTopLevelStatement(node: Kusto.Language.Syntax.SyntaxNode | null): boolean;
        IsFunctionBodyStatement(node: Kusto.Language.Syntax.SyntaxNode | null): boolean;
        IsFunctionBodyExpression(node: Kusto.Language.Syntax.SyntaxNode | null): boolean;
        /**
         * Gets a part of an entity expression given a syntax element.
         Returns null if the element is not part of an entity expression.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.SyntaxElement}    element    
         * @param   {Kusto.Language.GlobalState}             globals
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetEntityExpressionPart$1(element: Kusto.Language.Syntax.SyntaxElement | null, globals: Kusto.Language.GlobalState | null): Kusto.Language.Syntax.Expression | null;
        /**
         * Gets the selector part of an entity expression.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.Expression}    entity        
         * @param   {System.Func}                         fnSelector
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetEntityExpressionPart(entity: Kusto.Language.Syntax.Expression | null, fnSelector: {(arg: Kusto.Language.Syntax.Expression): boolean} | null): Kusto.Language.Syntax.Expression | null;
        /**
         * Returns true if the function is part of an entity expression.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Symbols.FunctionSymbol}    fs
         * @return  {boolean}
         */
        IsEntityFunction(fs: Kusto.Language.Symbols.FunctionSymbol | null): boolean;
        /**
         * Gets the portion of the entity expression from the start of the full entity expression
         up to and including the specified element.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.SyntaxElement}    element    
         * @param   {Kusto.Language.GlobalState}             globals
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetEntityExpressionStart(element: Kusto.Language.Syntax.SyntaxElement | null, globals: Kusto.Language.GlobalState | null): Kusto.Language.Syntax.Expression | null;
        /**
         * Gets the full entity expression given a part of it
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.SyntaxElement}    element    
         * @param   {Kusto.Language.GlobalState}             globals
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetEntityExpression(element: Kusto.Language.Syntax.SyntaxElement | null, globals: Kusto.Language.GlobalState | null): Kusto.Language.Syntax.Expression | null;
        /**
         * Gets the cluster('xxx') part of an entity expression or null if there is no cluster qualifier.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.Expression}    entity
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetEntityExpressionClusterPart(entity: Kusto.Language.Syntax.Expression | null): Kusto.Language.Syntax.Expression | null;
        /**
         * Gets the database('xxx') part of the entity expression or null if there is no database qualifier.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.Expression}    entity
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetEntityExpressionDatabasePart(entity: Kusto.Language.Syntax.Expression | null): Kusto.Language.Syntax.Expression | null;
        /**
         * Gets the entity part (table, function, etc) of an entity expression.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.Expression}    entity     
         * @param   {Kusto.Language.GlobalState}          globals
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetEntityExpressionEntityPart(entity: Kusto.Language.Syntax.Expression | null, globals?: Kusto.Language.GlobalState | null): Kusto.Language.Syntax.Expression | null;
        /**
         * Gets the entity group element part of an entity expression.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.Expression}    entity
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetEntityExpressionEntityGroupElementPart(entity: Kusto.Language.Syntax.Expression | null): Kusto.Language.Syntax.Expression | null;
        /**
         * True if the entity expression part is a cluster qualifier.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.Expression}    part
         * @return  {boolean}
         */
        IsClusterPart(part: Kusto.Language.Syntax.Expression | null): boolean;
        /**
         * True if the entity expression part is a database qualifier.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.Expression}    part
         * @return  {boolean}
         */
        IsDatabasePart(part: Kusto.Language.Syntax.Expression | null): boolean;
        /**
         * True if the entity expression part is the database entity.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.Expression}    part       
         * @param   {Kusto.Language.GlobalState}          globals
         * @return  {boolean}
         */
        IsEntityPart(part: Kusto.Language.Syntax.Expression | null, globals?: Kusto.Language.GlobalState | null): boolean;
        /**
         * True if the entity expression part is an entity group element reference.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.Expression}    part
         * @return  {boolean}
         */
        IsEntityGroupElementPart(part: Kusto.Language.Syntax.Expression | null): boolean;
        /**
         * Determines if the node is the right hand side of a path expression after a database(xxx) or cluster().database() expression.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.SyntaxNode}    node
         * @return  {boolean}
         */
        IsDatabaseQualifiedName(node: Kusto.Language.Syntax.SyntaxNode | null): boolean;
        /**
         * Returns true if the symbol is a member of a known database but not a member of the current database.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Symbols.Symbol}    symbol     
         * @param   {Kusto.Language.GlobalState}       globals
         * @return  {boolean}
         */
        IsDatabaseMemberNotFromCurrentDatabase(symbol: Kusto.Language.Symbols.Symbol | null, globals: Kusto.Language.GlobalState | null): boolean;
        /**
         * Gets the referenced symbol or the result of an entity function.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.SyntaxNode}    node
         * @return  {Kusto.Language.Symbols.Symbol}
         */
        GetEntityReference(node: Kusto.Language.Syntax.SyntaxNode | null): Kusto.Language.Symbols.Symbol | null;
        /**
         * Gets the query text with the database() and cluster().database() qualifiers removed for a specified symbol.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Syntax.SyntaxNode}    query              
         * @param   {Kusto.Language.Symbols.Symbol}       qualifiedSymbol    
         * @param   {Kusto.Language.GlobalState}          globals
         * @return  {Kusto.Language.Editor.EditString}
         */
        GetQueryWithDatabaseQualifiersRemoved(query: Kusto.Language.Syntax.SyntaxNode | null, qualifiedSymbol: Kusto.Language.Symbols.Symbol | null, globals: Kusto.Language.GlobalState | null): Kusto.Language.Editor.EditString | null;
        /**
         * Gets the new line characters that are currently being used by the text,
         or Environment.NewLine if none are found.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {string}    text
         * @return  {string}
         */
        GetInferredNewLine(text: string | null): string | null;
        IsExpressionOfLetStatement(node: Kusto.Language.Syntax.SyntaxNode | null): boolean;
        IsSelectorOfPathExpression(node: Kusto.Language.Syntax.SyntaxNode | null): boolean;
        IsOperatorOfPipeExpression(node: Kusto.Language.Syntax.SyntaxNode | null): boolean;
        IsFreeStandingExpression(ex: Kusto.Language.Syntax.Expression | null): boolean;
        /**
         * Gets a name that does not already refer to something in the code at the specified position.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.KustoCode}    code        
         * @param   {number}                      position    
         * @param   {string}                      baseName
         * @return  {string}
         */
        GetNewName(code: Kusto.Language.KustoCode | null, position: number, baseName: string | null): string | null;
        /**
         * Gets a list of all the referenced symbols declared outside the fragment.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.KustoCode}                      code      
         * @param   {number}                                        start     
         * @param   {number}                                        length
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetExternalSymbolsReferenced(code: Kusto.Language.KustoCode | null, start: number, length: number): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        /**
         * Gets all the columns in scope within a query operator.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.KustoCode}                      code        
         * @param   {number}                                        position
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetColumnsInScope(code: Kusto.Language.KustoCode | null, position: number): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        /**
         * Gets the schema representation of a table as it would be represented in Kusto.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columns
         * @return  {string}
         */
        GetSchema(columns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null): string | null;
        /**
         * Gets the text for a type/schema declaration as it would be represented in a kusto query.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Symbols.TypeSymbol}    type
         * @return  {string}
         */
        GetKustoType(type: Kusto.Language.Symbols.TypeSymbol | null): string | null;
        /**
         * Changes the indentation of the individual lines to the specified indenation.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {string}     text                
         * @param   {string}     newIndentation      
         * @param   {boolean}    includeFirstLine
         * @return  {string}
         */
        ChangeIndentation(text: string | null, newIndentation: string | null, includeFirstLine: boolean): string | null;
        /**
         * Changes the whitespace at the beginning of the lines in the text range by the specified amount of spaces.
         Negative delta removes whitespace.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Editor.EditString}    text                
         * @param   {number}                              rangeStart          
         * @param   {number}                              rangeLength         
         * @param   {number}                              indentationDelta    
         * @param   {boolean}                             includeFirstLine
         * @return  {Kusto.Language.Editor.EditString}
         */
        IndentText(text: Kusto.Language.Editor.EditString | null, rangeStart: number, rangeLength: number, indentationDelta: number, includeFirstLine?: boolean): Kusto.Language.Editor.EditString | null;
        /**
         * Add data items to {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Editor.CodeAction}              action    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    data
         * @return  {Kusto.Language.Editor.CodeAction}
         */
        AddData(action: Kusto.Language.Editor.CodeAction | null, data: System.Collections.Generic.IReadOnlyList$1<string> | null): Kusto.Language.Editor.CodeAction | null;
        /**
         * Add data items to {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Editor.CodeAction}    action    
         * @param   {Array.<string>}                      data
         * @return  {Kusto.Language.Editor.CodeAction}
         */
        AddData$1(action: Kusto.Language.Editor.CodeAction | null, data: string[] | null): Kusto.Language.Editor.CodeAction | null;
        /**
         * Remove data items from {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Editor.CodeAction}    action    
         * @param   {number}                              count
         * @return  {Kusto.Language.Editor.CodeAction}
         */
        RemoveData(action: Kusto.Language.Editor.CodeAction | null, count: number): Kusto.Language.Editor.CodeAction | null;
        /**
         * Inserts open and close brackets at the specified positions and indent the interior text.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ActorUtilities
         * @memberof Kusto.Language.Editor.ActorUtilities
         * @param   {Kusto.Language.Editor.EditString}           text                
         * @param   {number}                                     openPosition        
         * @param   {string}                                     prefixText          
         * @param   {string}                                     openBracketText     
         * @param   {number}                                     closePosition       
         * @param   {string}                                     closeBracketText    
         * @param   {Kusto.Language.Editor.FormattingOptions}    options
         * @return  {Kusto.Language.Editor.EditString}
         */
        InsertBrackets(text: Kusto.Language.Editor.EditString | null, openPosition: number, prefixText: string | null, openBracketText: string | null, closePosition: number, closeBracketText: string | null, options: Kusto.Language.Editor.FormattingOptions | null): Kusto.Language.Editor.EditString | null;
    }
    var ActorUtilities: ActorUtilitiesFunc;

    interface AvoidUsingToBoolOnNumericsAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface AvoidUsingToBoolOnNumericsAnalyzerFunc extends Function {
        prototype: AvoidUsingToBoolOnNumericsAnalyzer;
        new (): AvoidUsingToBoolOnNumericsAnalyzer;
    }
    var AvoidUsingToBoolOnNumericsAnalyzer: AvoidUsingToBoolOnNumericsAnalyzerFunc;

    interface AvoidUsingObsoleteFunctionsAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface AvoidUsingObsoleteFunctionsAnalyzerFunc extends Function {
        prototype: AvoidUsingObsoleteFunctionsAnalyzer;
        new (): AvoidUsingObsoleteFunctionsAnalyzer;
    }
    var AvoidUsingObsoleteFunctionsAnalyzer: AvoidUsingObsoleteFunctionsAnalyzerFunc;

    /**
     * Analyzer for detecting usage of short string comparisons
     *
     * @class Kusto.Language.Editor.AvoidUsingNullStringComparisonAnalyzer
     * @augments Kusto.Language.Editor.KustoAnalyzer
     */
    interface AvoidUsingNullStringComparisonAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface AvoidUsingNullStringComparisonAnalyzerFunc extends Function {
        prototype: AvoidUsingNullStringComparisonAnalyzer;
        new (): AvoidUsingNullStringComparisonAnalyzer;
    }
    var AvoidUsingNullStringComparisonAnalyzer: AvoidUsingNullStringComparisonAnalyzerFunc;

    interface AvoidUsingLegacyPartitionAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface AvoidUsingLegacyPartitionAnalyzerFunc extends Function {
        prototype: AvoidUsingLegacyPartitionAnalyzer;
        new (): AvoidUsingLegacyPartitionAnalyzer;
    }
    var AvoidUsingLegacyPartitionAnalyzer: AvoidUsingLegacyPartitionAnalyzerFunc;

    interface AvoidUsingHasWithIPv4StringsAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface AvoidUsingHasWithIPv4StringsAnalyzerFunc extends Function {
        prototype: AvoidUsingHasWithIPv4StringsAnalyzer;
        new (): AvoidUsingHasWithIPv4StringsAnalyzer;
    }
    var AvoidUsingHasWithIPv4StringsAnalyzer: AvoidUsingHasWithIPv4StringsAnalyzerFunc;

    interface AvoidUsingFormatDateTimeInPredicateAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface AvoidUsingFormatDateTimeInPredicateAnalyzerFunc extends Function {
        prototype: AvoidUsingFormatDateTimeInPredicateAnalyzer;
        new (): AvoidUsingFormatDateTimeInPredicateAnalyzer;
    }
    var AvoidUsingFormatDateTimeInPredicateAnalyzer: AvoidUsingFormatDateTimeInPredicateAnalyzerFunc;

    interface AvoidUsingContainsAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface AvoidUsingContainsAnalyzerFunc extends Function {
        prototype: AvoidUsingContainsAnalyzer;
        new (): AvoidUsingContainsAnalyzer;
    }
    var AvoidUsingContainsAnalyzer: AvoidUsingContainsAnalyzerFunc;

    interface AvoidStrlenWithDynamicAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface AvoidStrlenWithDynamicAnalyzerFunc extends Function {
        prototype: AvoidStrlenWithDynamicAnalyzer;
        new (): AvoidStrlenWithDynamicAnalyzer;
    }
    var AvoidStrlenWithDynamicAnalyzer: AvoidStrlenWithDynamicAnalyzerFunc;

    interface AvoidJoinWithoutKindAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface AvoidJoinWithoutKindAnalyzerFunc extends Function {
        prototype: AvoidJoinWithoutKindAnalyzer;
        new (): AvoidJoinWithoutKindAnalyzer;
    }
    var AvoidJoinWithoutKindAnalyzer: AvoidJoinWithoutKindAnalyzerFunc;

    /**
     * An {@link } that can be applied.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Editor.ApplyAction
     * @augments Kusto.Language.Editor.CodeAction
     */
    interface ApplyAction extends Kusto.Language.Editor.CodeAction {
        /**
         * Additional data used by {@link } when action is applied.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ApplyAction
         * @function Data
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Data: System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * Returns a new {@link } with the data values changed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.ApplyAction
         * @memberof Kusto.Language.Editor.ApplyAction
         * @param   {System.Collections.Generic.IReadOnlyList$1}    data
         * @return  {Kusto.Language.Editor.ApplyAction}
         */
        WithData$1(data: System.Collections.Generic.IReadOnlyList$1<string> | null): Kusto.Language.Editor.ApplyAction | null;
        /**
         * Returns a new {@link } with the data values changed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.ApplyAction
         * @memberof Kusto.Language.Editor.ApplyAction
         * @param   {Array.<string>}                       data
         * @return  {Kusto.Language.Editor.ApplyAction}
         */
        WithData$2(data: string[] | null): Kusto.Language.Editor.ApplyAction | null;
        /**
         * Returns a new {@link } with the data values changed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.ApplyAction
         * @memberof Kusto.Language.Editor.ApplyAction
         * @param   {System.Collections.Generic.IEnumerable$1}    data
         * @return  {Kusto.Language.Editor.ApplyAction}
         */
        WithData(data: System.Collections.Generic.IEnumerable$1<string> | null): Kusto.Language.Editor.ApplyAction | null;
        /**
         * Returns a new {@link } with the additional data appended to the list of data values.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.ApplyAction
         * @memberof Kusto.Language.Editor.ApplyAction
         * @param   {System.Collections.Generic.IEnumerable$1}    additionalData
         * @return  {Kusto.Language.Editor.ApplyAction}
         */
        AddData(additionalData: System.Collections.Generic.IEnumerable$1<string> | null): Kusto.Language.Editor.ApplyAction | null;
        /**
         * Returns a new {@link } with the additional data appended to the list of data values.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.ApplyAction
         * @memberof Kusto.Language.Editor.ApplyAction
         * @param   {Array.<string>}                       additionalData
         * @return  {Kusto.Language.Editor.ApplyAction}
         */
        AddData$1(additionalData: string[] | null): Kusto.Language.Editor.ApplyAction | null;
        /**
         * Returns a new {@link } with a number of data values removed from the end of the data value list.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.ApplyAction
         * @memberof Kusto.Language.Editor.ApplyAction
         * @param   {number}                               count
         * @return  {Kusto.Language.Editor.ApplyAction}
         */
        RemoveData(count: number): Kusto.Language.Editor.ApplyAction | null;
    }
    interface ApplyActionFunc extends Function {
        prototype: ApplyAction;
    }
    var ApplyAction: ApplyActionFunc;

    /**
     * Finds parsers with annotations that are considered at a specific input offset
     *
     * @class Kusto.Language.Editor.AnnotatedParserFinder$1
     * @augments Kusto.Language.Parsing.ParserVisitor$3
     */
    interface AnnotatedParserFinder$1<TInput> extends Kusto.Language.Parsing.ParserVisitor$3<TInput,number,number> {
        VisitApply<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ApplyParser$3<TInput,TLeft,TOutput> | null, start: number): number;
        VisitBest$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.BestParser$2<TInput,TOutput> | null, start: number): number;
        VisitBest(parser: Kusto.Language.Parsing.BestParser$1<TInput> | null, start: number): number;
        VisitConvert<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ConvertParser$2<TInput,TOutput> | null, start: number): number;
        VisitFails(parser: Kusto.Language.Parsing.FailsParser$1<TInput> | null, start: number): number;
        VisitFirst$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.FirstParser$2<TInput,TOutput> | null, start: number): number;
        VisitFirst(parser: Kusto.Language.Parsing.FirstParser$1<TInput> | null, start: number): number;
        VisitForward<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ForwardParser$2<TInput,TOutput> | null, start: number): number;
        VisitIf$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.IfParser$2<TInput,TOutput> | null, start: number): number;
        VisitIf(parser: Kusto.Language.Parsing.IfParser$1<TInput> | null, start: number): number;
        VisitLimit<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.LimitParser$2<TInput,TOutput> | null, start: number): number;
        VisitMap<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MapParser$2<TInput,TOutput> | null, start: number): number;
        VisitMatch(parser: Kusto.Language.Parsing.MatchParser$1<TInput> | null, start: number): number;
        VisitMatch$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MatchParser$2<TInput,TOutput> | null, start: number): number;
        VisitNot(parser: Kusto.Language.Parsing.NotParser$1<TInput> | null, start: number): number;
        VisitOneOrMore(parser: Kusto.Language.Parsing.OneOrMoreParser$1<TInput> | null, start: number): number;
        VisitOptional<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.OptionalParser$2<TInput,TOutput> | null, start: number): number;
        VisitProduce<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ProduceParser$2<TInput,TOutput> | null, start: number): number;
        VisitRequired<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RequiredParser$2<TInput,TOutput> | null, start: number): number;
        VisitRule<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RuleParser$2<TInput,TOutput> | null, start: number): number;
        VisitSequence(parser: Kusto.Language.Parsing.SequenceParser$1<TInput> | null, start: number): number;
        VisitZeroOrMore(parser: Kusto.Language.Parsing.ZeroOrMoreParser$1<TInput> | null, start: number): number;
    }
    interface AnnotatedParserFinder$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: AnnotatedParserFinder$1<TInput>;
            /**
             * Finds the parsers with annotations that are considered at the specified find input offset.
             *
             * @static
             * @public
             * @this Kusto.Language.Editor.AnnotatedParserFinder$1
             * @memberof Kusto.Language.Editor.AnnotatedParserFinder$1
             * @param   {Kusto.Language.Parsing.Source$1}               source        
             * @param   {number}                                        findOffset    
             * @param   {Kusto.Language.Parsing.Parser$1}               root          
             * @param   {number}                                        start
             * @return  {System.Collections.Generic.IReadOnlyList$1}
             */
            FindParsers(source: Kusto.Language.Parsing.Source$1<TInput> | null, findOffset: number, root: Kusto.Language.Parsing.Parser$1<TInput> | null, start: number): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null;
            /**
             * Finds the list of paths to parsers with annotations that are considered at the specified find input offset.
             *
             * @static
             * @public
             * @this Kusto.Language.Editor.AnnotatedParserFinder$1
             * @memberof Kusto.Language.Editor.AnnotatedParserFinder$1
             * @param   {Kusto.Language.Parsing.Source$1}               source        
             * @param   {number}                                        findOffset    
             * @param   {Kusto.Language.Parsing.Parser$1}               root          
             * @param   {number}                                        start
             * @return  {System.Collections.Generic.IReadOnlyList$1}
             */
            FindPaths(source: Kusto.Language.Parsing.Source$1<TInput> | null, findOffset: number, root: Kusto.Language.Parsing.Parser$1<TInput> | null, start: number): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ParserPath$1<TInput>> | null;
        }
    }
    var AnnotatedParserFinder$1: AnnotatedParserFinder$1Func;

    /**
     * Represents a single edit to a text document: insert, delete or replace.
     *
     * @public
     * @class Kusto.Language.Editor.TextEdit
     */
    interface TextEdit {
        /**
         * The text position of the start of the edit.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.TextEdit
         * @function Start
         * @type number
         */
        Start: number;
        /**
         * The number of characters to delete starting at the start position.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.TextEdit
         * @function DeleteLength
         * @type number
         */
        DeleteLength: number;
        /**
         * The text to be inserted at the start position, (after any deletion).
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.TextEdit
         * @function InsertText
         * @type string
         */
        InsertText: string | null;
        $clone(to: Kusto.Language.Editor.TextEdit): Kusto.Language.Editor.TextEdit;
    }
    interface TextEditFunc extends Function {
        prototype: TextEdit;
        /**
         * Create a new {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.TextEdit
         * @memberof Kusto.Language.Editor.TextEdit
         * @param   {number}    start           
         * @param   {number}    deleteLength    
         * @param   {string}    insertText
         * @return  {void}
         */
        $ctor1: {
            new (start: number, deleteLength: number, insertText: string | null): TextEdit
        };
        new (): TextEdit;
        ctor: {
            new (): TextEdit
        };
        /**
         * Creates a replacement edit.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.TextEdit
         * @memberof Kusto.Language.Editor.TextEdit
         * @param   {number}                            start           
         * @param   {number}                            deleteLength    
         * @param   {string}                            insertText
         * @return  {Kusto.Language.Editor.TextEdit}
         */
        Replacement(start: number, deleteLength: number, insertText: string | null): Kusto.Language.Editor.TextEdit;
        /**
         * Creates a delete edit.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.TextEdit
         * @memberof Kusto.Language.Editor.TextEdit
         * @param   {number}                            start           
         * @param   {number}                            deleteLength
         * @return  {Kusto.Language.Editor.TextEdit}
         */
        Deletion(start: number, deleteLength: number): Kusto.Language.Editor.TextEdit;
        /**
         * Creates a insert edit.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.TextEdit
         * @memberof Kusto.Language.Editor.TextEdit
         * @param   {number}                            start    
         * @param   {string}                            text
         * @return  {Kusto.Language.Editor.TextEdit}
         */
        Insertion(start: number, text: string | null): Kusto.Language.Editor.TextEdit;
    }
    var TextEdit: TextEditFunc;

    enum SpacingStyle {
        AsIs = 0,
        Minimal = 1,
        One = 2
    }

    /**
     * The elements in the code that are related to the element at a particular cursor position.
     *
     * @public
     * @class Kusto.Language.Editor.RelatedInfo
     */
    interface RelatedInfo {
        Elements: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.RelatedElement> | null;
        CurrentIndex: number;
        GetNextIndex(index: number): number;
        GetPreviousIndex(index: number): number;
    }
    interface RelatedInfoFunc extends Function {
        prototype: RelatedInfo;
        new (elements: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.RelatedElement> | null, currentIndex: number): RelatedInfo;
        Empty: Kusto.Language.Editor.RelatedInfo | null;
    }
    var RelatedInfo: RelatedInfoFunc;

    enum RelatedElementKind {
        Syntax = 0,
        Reference = 1,
        Declaration = 2,
        Other = 3
    }

    interface ClientParameter extends Kusto.Language.Editor.SyntaxReference {
        Name: string | null;
        Index: number | null;
        toString(): string | null;
    }
    interface ClientParameterFunc extends Function {
        prototype: ClientParameter;
        $ctor2: {
            new (name: string | null, index: number | null, range: Kusto.Language.Editor.TextRange): ClientParameter
        };
        $ctor3: {
            new (name: string | null, index: number | null, start: number, length: number): ClientParameter
        };
        ctor: {
            new (name: string | null, range: Kusto.Language.Editor.TextRange): ClientParameter
        };
        $ctor1: {
            new (name: string | null, start: number, length: number): ClientParameter
        };
    }
    var ClientParameter: ClientParameterFunc;

    /**
     * A factory for creating {@link }
     *
     * @public
     * @class Kusto.Language.Editor.KustoCodeServiceFactory
     * @augments Kusto.Language.Editor.CodeServiceFactory
     */
    interface KustoCodeServiceFactory extends Kusto.Language.Editor.CodeServiceFactory {
        /**
         * The {@link } to instantiate new {@link } with.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.KustoCodeServiceFactory
         * @function Globals
         * @type Kusto.Language.GlobalState
         */
        Globals: Kusto.Language.GlobalState | null;
        /**
         * Creates a new {@link } with {@link } changed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.KustoCodeServiceFactory
         * @memberof Kusto.Language.Editor.KustoCodeServiceFactory
         * @param   {Kusto.Language.GlobalState}                       globals
         * @return  {Kusto.Language.Editor.KustoCodeServiceFactory}
         */
        WithGlobals(globals: Kusto.Language.GlobalState | null): Kusto.Language.Editor.KustoCodeServiceFactory | null;
        TryGetCodeService(text: string | null, service: {v: Kusto.Language.Editor.CodeService | null}): boolean;
    }
    interface KustoCodeServiceFactoryFunc extends Function {
        prototype: KustoCodeServiceFactory;
        /**
         * Creates a new instance of {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.KustoCodeServiceFactory
         * @memberof Kusto.Language.Editor.KustoCodeServiceFactory
         * @param   {Kusto.Language.GlobalState}    globals
         * @return  {void}
         */
        new (globals: Kusto.Language.GlobalState | null): KustoCodeServiceFactory;
        /**
         * Returns true if the text is believed to be Kusto syntax.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCodeServiceFactory
         * @memberof Kusto.Language.Editor.KustoCodeServiceFactory
         * @param   {string}     text
         * @return  {boolean}
         */
        /**
         * Returns true if the text is believed to be SQL syntax.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCodeServiceFactory
         * @memberof Kusto.Language.Editor.KustoCodeServiceFactory
         * @param   {string}     text
         * @return  {boolean}
         */
    }
    var KustoCodeServiceFactory: KustoCodeServiceFactoryFunc;

    /**
     * The location of a reference to a cluster in the text of the code.
     *
     * @public
     * @class Kusto.Language.Editor.ClusterReference
     * @augments Kusto.Language.Editor.SyntaxReference
     */
    interface ClusterReference extends Kusto.Language.Editor.SyntaxReference {
        /**
         * The name of the cluster referenced.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClusterReference
         * @function Cluster
         * @type string
         */
        Cluster: string | null;
    }
    interface ClusterReferenceFunc extends Function {
        prototype: ClusterReference;
        new (cluster: string | null, start: number, length: number): ClusterReference;
    }
    var ClusterReference: ClusterReferenceFunc;

    /**
     * A {@link } for an unknown kind of code.
     *
     * @public
     * @class Kusto.Language.Editor.UnknownCodeService
     * @augments Kusto.Language.Editor.CommonCodeService
     */
    interface UnknownCodeService extends Kusto.Language.Editor.CommonCodeService {
        Kind: string | null;
    }
    interface UnknownCodeServiceFunc extends Function {
        prototype: UnknownCodeService;
        new (text: string | null): UnknownCodeService;
    }
    var UnknownCodeService: UnknownCodeServiceFunc;

    /**
     * An action taken by the client to move the caret to a position relative to the start of the {@link }
     *
     * @public
     * @class Kusto.Language.Editor.MoveCaretAction
     * @augments Kusto.Language.Editor.ResultAction
     */
    interface MoveCaretAction extends Kusto.Language.Editor.ResultAction {
        NewCaretPosition: number;
    }
    interface MoveCaretActionFunc extends Function {
        prototype: MoveCaretAction;
        /**
         * Constructs an action taken by the client to move the caret to a position relative to the start of the {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.MoveCaretAction
         * @memberof Kusto.Language.Editor.MoveCaretAction
         * @param   {number}    newCaretPosition
         * @return  {void}
         */
        new (newCaretPosition: number): MoveCaretAction;
    }
    var MoveCaretAction: MoveCaretActionFunc;

    interface NullAggregationAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface NullAggregationAnalyzerFunc extends Function {
        prototype: NullAggregationAnalyzer;
        new (): NullAggregationAnalyzer;
    }
    var NullAggregationAnalyzer: NullAggregationAnalyzerFunc;

    /**
     * A {@link } that wraps another service and adjusts the positions used in the feature API's by a fixed offset.
     *
     * @public
     * @class Kusto.Language.Editor.OffsetCodeService
     * @augments Kusto.Language.Editor.CodeService
     */
    interface OffsetCodeService extends Kusto.Language.Editor.CodeService {
        Kind: string | null;
        Text: string | null;
        WithOffset(offset: number): Kusto.Language.Editor.OffsetCodeService | null;
        GetClassifications(start: number, length: number, clipToRange: boolean, waitForAnalysis: boolean, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.ClassificationInfo | null;
        GetClientParameters(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClientParameter> | null;
        GetClusterReferences(cancellationToken: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClusterReference> | null;
        GetCompletionItems(position: number, options: Kusto.Language.Editor.CompletionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CompletionInfo | null;
        GetDatabaseReferences(cancellationToken: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.DatabaseReference> | null;
        TryGetCachedDiagnostics(diagnostics: {v: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null}): boolean;
        GetDiagnostics(waitForAnalysis: boolean, cancellationToken: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        TryGetCachedAnalyzerDiagnostics(diagnostics: {v: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null}): boolean;
        GetAnalyzerDiagnostics(waitForAnalysis: boolean, cancellationToken: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        GetAnalyzers(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.AnalyzerInfo> | null;
        GetCodeActions(position: number, selectionStart: number, selectionLength: number, options: Kusto.Language.Editor.CodeActionOptions | null, waitForAnalysis: boolean, actorName: string | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionInfo | null;
        ApplyCodeAction(codeAction: Kusto.Language.Editor.ApplyAction | null, caretPosition: number, options: Kusto.Language.Editor.CodeActionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionResult | null;
        GetFormattedText(options: Kusto.Language.Editor.FormattingOptions | null, caretPosition: number, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.FormattedText | null;
        GetMinimalText(kind: Kusto.Language.Editor.MinimalTextKind, cancellationToken: Kusto.Language.Utils.CancellationToken): string | null;
        GetOutlines(options: Kusto.Language.Editor.OutliningOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.OutlineInfo | null;
        GetQuickInfo(position: number, options: Kusto.Language.Editor.QuickInfoOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.QuickInfo | null;
        GetElement(position: number, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.TextRange;
        GetRelatedElements(position: number, options: Kusto.Language.Editor.FindRelatedOptions, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.RelatedInfo | null;
        IsFeatureSupported(feature: string | null, position?: number): boolean;
        ShouldAutoComplete(position: number, key: number, cancellationToken: Kusto.Language.Utils.CancellationToken): boolean;
    }
    interface OffsetCodeServiceFunc extends Function {
        prototype: OffsetCodeService;
        new (service: Kusto.Language.Editor.CodeService | null, offset: number): OffsetCodeService;
    }
    var OffsetCodeService: OffsetCodeServiceFunc;

    interface PreferUsingMaterializedViewIntrinsicAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface PreferUsingMaterializedViewIntrinsicAnalyzerFunc extends Function {
        prototype: PreferUsingMaterializedViewIntrinsicAnalyzer;
        new (): PreferUsingMaterializedViewIntrinsicAnalyzer;
        /**
         * Try to identify whether the materialized view being referenced is a down sampling one, by checking 
         if it has a group by key with one of the functions in {@link }. 
         If it is, suggest to change to using the materialized_view() function.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.PreferUsingMaterializedViewIntrinsicAnalyzer
         * @memberof Kusto.Language.Editor.PreferUsingMaterializedViewIntrinsicAnalyzer
         * @param   {Kusto.Language.Syntax.NameReference}              nameReference             
         * @param   {Kusto.Language.Symbols.MaterializedViewSymbol}    materializedViewSymbol    
         * @param   {Kusto.Language.KustoCode}                         code                      
         * @param   {Kusto.Language.Diagnostic}                        dx                        
         * @param   {System.Collections.Generic.List$1}                diagnostics
         * @return  {void}
         */
    }
    var PreferUsingMaterializedViewIntrinsicAnalyzer: PreferUsingMaterializedViewIntrinsicAnalyzerFunc;

    interface PreferUsingOptimizedAlternative extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface PreferUsingOptimizedAlternativeFunc extends Function {
        prototype: PreferUsingOptimizedAlternative;
        new (): PreferUsingOptimizedAlternative;
    }
    var PreferUsingOptimizedAlternative: PreferUsingOptimizedAlternativeFunc;

    /**
     * An action taken by the client to intiate a rename of the named element at the current caret position.
     *
     * @public
     * @class Kusto.Language.Editor.RenameAction
     * @augments Kusto.Language.Editor.ResultAction
     */
    interface RenameAction extends Kusto.Language.Editor.ResultAction {
    }
    interface RenameActionFunc extends Function {
        prototype: RenameAction;
        /**
         * Constructs an action taken by the client to intiate a rename of the named element at the current caret position.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.RenameAction
         * @memberof Kusto.Language.Editor.RenameAction
         * @return  {void}
         */
        new (): RenameAction;
        /**
         * An action taken by the client to intiate a rename of the named element at the current caret position.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.RenameAction
         * @type Kusto.Language.Editor.RenameAction
         */
        Instance: Kusto.Language.Editor.RenameAction | null;
    }
    var RenameAction: RenameActionFunc;

    interface RenameActor extends Kusto.Language.Editor.KustoActor {
        GetActions(service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, position: number, selectionStart: number, selectionLength: number, options: Kusto.Language.Editor.CodeActionOptions | null, actions: System.Collections.Generic.List$1<Kusto.Language.Editor.CodeAction> | null, waitForAnalysis: boolean, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
        ApplyAction(service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, action: Kusto.Language.Editor.ApplyAction | null, caretPosition: number, options: Kusto.Language.Editor.CodeActionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionResult | null;
    }
    interface RenameActorFunc extends Function {
        prototype: RenameActor;
        new (): RenameActor;
    }
    var RenameActor: RenameActorFunc;

    interface StdevTimespanConversionAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface StdevTimespanConversionAnalyzerFunc extends Function {
        prototype: StdevTimespanConversionAnalyzer;
        new (): StdevTimespanConversionAnalyzer;
    }
    var StdevTimespanConversionAnalyzer: StdevTimespanConversionAnalyzerFunc;

    /**
     * An element of the text that is related in some way to another element.
     *
     * @public
     * @class Kusto.Language.Editor.RelatedElement
     */
    interface RelatedElement {
        /**
         * The text range of the {@link }
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.RelatedElement
         * @function Range
         * @type Kusto.Language.Editor.TextRange
         */
        Range: Kusto.Language.Editor.TextRange;
        /**
         * The starting text position of the {@link }
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.RelatedElement
         * @function Start
         * @type number
         */
        Start: number;
        /**
         * The text length of the {@link }
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.RelatedElement
         * @function Length
         * @type number
         */
        Length: number;
        /**
         * The text position after the end of the {@link }
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.RelatedElement
         * @function End
         * @type number
         */
        End: number;
        /**
         * The kind of related element.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.RelatedElement
         * @function Kind
         * @type Kusto.Language.Editor.RelatedElementKind
         */
        Kind: Kusto.Language.Editor.RelatedElementKind;
        /**
         * The placement of the cursor when moving to the left,
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.RelatedElement
         * @function CursorLeft
         * @type number
         */
        CursorLeft: number;
        /**
         * The placement of the cursor when moving to the right.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.RelatedElement
         * @function CursorRight
         * @type number
         */
        CursorRight: number;
    }
    interface RelatedElementFunc extends Function {
        prototype: RelatedElement;
        $ctor1: {
            new (range: Kusto.Language.Editor.TextRange, kind: Kusto.Language.Editor.RelatedElementKind, cursorLeft: number, cursorRight: number): RelatedElement
        };
        ctor: {
            new (range: Kusto.Language.Editor.TextRange, kind: Kusto.Language.Editor.RelatedElementKind): RelatedElement
        };
        $ctor3: {
            new (start: number, length: number, kind: Kusto.Language.Editor.RelatedElementKind, cursorLeft: number, cursorRight: number): RelatedElement
        };
        $ctor2: {
            new (start: number, length: number, kind: Kusto.Language.Editor.RelatedElementKind): RelatedElement
        };
    }
    var RelatedElement: RelatedElementFunc;

    interface ExtractExpressionActor extends Kusto.Language.Editor.KustoActor {
        GetActions(service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, position: number, selectionStart: number, selectionLength: number, options: Kusto.Language.Editor.CodeActionOptions | null, actions: System.Collections.Generic.List$1<Kusto.Language.Editor.CodeAction> | null, waitForAnalysis: boolean, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
        ApplyAction(service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, action: Kusto.Language.Editor.ApplyAction | null, caretPosition: number, options: Kusto.Language.Editor.CodeActionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionResult | null;
    }
    interface ExtractExpressionActorFunc extends Function {
        prototype: ExtractExpressionActor;
        new (): ExtractExpressionActor;
        ExtractValueKind: string | null;
        ExtractExpressionKind: string | null;
        ExtractFunctionKind: string | null;
    }
    var ExtractExpressionActor: ExtractExpressionActorFunc;

    /**
     * This is {@link } that produces code actions for diagnostics that can be fixed.
     *
     * @class Kusto.Language.Editor.DiagnosticFixActor
     * @augments Kusto.Language.Editor.KustoActor
     */
    interface DiagnosticFixActor extends Kusto.Language.Editor.KustoActor {
        GetActions(service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, position: number, selectionStart: number, selectionLength: number, options: Kusto.Language.Editor.CodeActionOptions | null, actions: System.Collections.Generic.List$1<Kusto.Language.Editor.CodeAction> | null, waitForAnalysis: boolean, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
        ApplyAction(service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, action: Kusto.Language.Editor.ApplyAction | null, caretPosition: number, options: Kusto.Language.Editor.CodeActionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionResult | null;
    }
    interface DiagnosticFixActorFunc extends Function {
        prototype: DiagnosticFixActor;
        new (fixers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.KustoFixer> | null): DiagnosticFixActor;
    }
    var DiagnosticFixActor: DiagnosticFixActorFunc;

    /**
     * The location of a reference to a database in the text of the code.
     *
     * @public
     * @class Kusto.Language.Editor.DatabaseReference
     * @augments Kusto.Language.Editor.SyntaxReference
     */
    interface DatabaseReference extends Kusto.Language.Editor.SyntaxReference {
        /**
         * The name of the database that is explicitly referenced.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.DatabaseReference
         * @function Database
         * @type string
         */
        Database: string | null;
        /**
         * The cluster that the database is associated with, either implied or explicitly referenced.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.DatabaseReference
         * @function Cluster
         * @type string
         */
        Cluster: string | null;
    }
    interface DatabaseReferenceFunc extends Function {
        prototype: DatabaseReference;
        new (database: string | null, cluster: string | null, start: number, length: number): DatabaseReference;
    }
    var DatabaseReference: DatabaseReferenceFunc;

    interface ConvertToMacroExpandActor extends Kusto.Language.Editor.KustoActor {
        GetActions(service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, position: number, selectionStart: number, selectionLength: number, options: Kusto.Language.Editor.CodeActionOptions | null, actions: System.Collections.Generic.List$1<Kusto.Language.Editor.CodeAction> | null, waitForAnalysis: boolean, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
        ApplyAction(service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, action: Kusto.Language.Editor.ApplyAction | null, caretPosition: number, options: Kusto.Language.Editor.CodeActionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionResult | null;
        /**
         * Gets all the entity expression starts referring to the specified symbol.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.ConvertToMacroExpandActor
         * @memberof Kusto.Language.Editor.ConvertToMacroExpandActor
         * @param   {Kusto.Language.KustoCode}             code      
         * @param   {Kusto.Language.Symbols.Symbol}        symbol
         * @return  {System.Collections.Generic.List$1}
         */
    }
    interface ConvertToMacroExpandActorFunc extends Function {
        prototype: ConvertToMacroExpandActor;
        new (): ConvertToMacroExpandActor;
        ConvertSelectionKind: string | null;
        ConvertUnionKind: string | null;
    }
    var ConvertToMacroExpandActor: ConvertToMacroExpandActorFunc;

    /**
     * A {@link } with default implementations for each feature API.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Editor.CommonCodeService
     * @augments Kusto.Language.Editor.CodeService
     */
    interface CommonCodeService extends Kusto.Language.Editor.CodeService {
        Text: string | null;
        IsFeatureSupported(feature: string | null, position?: number): boolean;
        TryGetCachedDiagnostics(diagnostics: {v: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null}): boolean;
        GetDiagnostics(waitForAnalysis: boolean, cancellationToken: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        TryGetCachedAnalyzerDiagnostics(diagnostics: {v: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null}): boolean;
        GetAnalyzerDiagnostics(waitForAnalysis: boolean, cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        GetAnalyzers(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.AnalyzerInfo> | null;
        GetCodeActions(position: number, selectionStart: number, selectionLength: number, options: Kusto.Language.Editor.CodeActionOptions | null, waitForAnalysis: boolean, actorName: string | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionInfo | null;
        ApplyCodeAction(codeAction: Kusto.Language.Editor.ApplyAction | null, caretPosition: number, options: Kusto.Language.Editor.CodeActionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionResult | null;
        GetClassifications(start: number, length: number, clipToRange: boolean, waitForAnalysis: boolean, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.ClassificationInfo | null;
        GetOutlines(options: Kusto.Language.Editor.OutliningOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.OutlineInfo | null;
        ShouldAutoComplete(position: number, key: number, cancellationToken: Kusto.Language.Utils.CancellationToken): boolean;
        GetCompletionItems(position: number, options: Kusto.Language.Editor.CompletionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CompletionInfo | null;
        GetQuickInfo(position: number, options: Kusto.Language.Editor.QuickInfoOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.QuickInfo | null;
        GetElement(position: number, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.TextRange;
        GetRelatedElements(position: number, options: Kusto.Language.Editor.FindRelatedOptions, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.RelatedInfo | null;
        GetClusterReferences(cancellationToken: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClusterReference> | null;
        GetDatabaseReferences(cancellationToken: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.DatabaseReference> | null;
        GetMinimalText(kind: Kusto.Language.Editor.MinimalTextKind, cancellationToken: Kusto.Language.Utils.CancellationToken): string | null;
        GetFormattedText(options: Kusto.Language.Editor.FormattingOptions | null, caretPosition: number, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.FormattedText | null;
        GetClientParameters(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClientParameter> | null;
    }
    interface CommonCodeServiceFunc extends Function {
        prototype: CommonCodeService;
        /**
         * Add the two classification ranges together.
         If any overlap, classifications from {@link } take precedence.
         *
         * @static
         * @protected
         * @this Kusto.Language.Editor.CommonCodeService
         * @memberof Kusto.Language.Editor.CommonCodeService
         * @param   {System.Collections.Generic.IReadOnlyList$1}    classifications1    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    classifications2
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
    }
    var CommonCodeService: CommonCodeServiceFunc;

    /**
     * An analyzer that warns if any column reference is hiding a possible reference to
     a local variable or parameter in scope, so the user is aware and can choose
     to change the name of the variable or parameter to not conflict.
     *
     * @class Kusto.Language.Editor.ColumnHasSameNameAsVariableAnalyzer
     * @augments Kusto.Language.Editor.KustoAnalyzer
     */
    interface ColumnHasSameNameAsVariableAnalyzer extends Kusto.Language.Editor.KustoAnalyzer {
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface ColumnHasSameNameAsVariableAnalyzerFunc extends Function {
        prototype: ColumnHasSameNameAsVariableAnalyzer;
        new (): ColumnHasSameNameAsVariableAnalyzer;
    }
    var ColumnHasSameNameAsVariableAnalyzer: ColumnHasSameNameAsVariableAnalyzerFunc;

    /**
     * A {@link } for Kusto queries and commands.
     *
     * @public
     * @class Kusto.Language.Editor.KustoCodeService
     * @augments Kusto.Language.Editor.CommonCodeService
     */
    interface KustoCodeService extends Kusto.Language.Editor.CommonCodeService {
        Kind: string | null;
        /**
         * Returns true if the text appears parsable
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCodeService
         * @memberof Kusto.Language.Editor.KustoCodeService
         * @param   {string}     text
         * @return  {boolean}
         */
        /**
         * Determines if the parsed syntax can be analyzed
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCodeService
         * @memberof Kusto.Language.Editor.KustoCodeService
         * @param   {Kusto.Language.KustoCode}    code
         * @return  {boolean}
         */
        /**
         * Gets the {@link } for the text without waiting for semantic analysis.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCodeService
         * @memberof Kusto.Language.Editor.KustoCodeService
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken    
         * @param   {boolean}                                   waitForAnalysis      
         * @param   {Kusto.Language.KustoCode}                  code
         * @return  {boolean}
         */
        /**
         * Gets the {@link } for the text with semantic analysis done.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCodeService
         * @memberof Kusto.Language.Editor.KustoCodeService
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken    
         * @param   {boolean}                                   waitForAnalysis      
         * @param   {Kusto.Language.KustoCode}                  code
         * @return  {boolean}
         */
        IsFeatureSupported(feature: string | null, position: number): boolean;
        TryGetCachedDiagnostics(diagnostics: {v: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null}): boolean;
        GetDiagnostics(waitForAnalysis?: boolean, cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        TryGetCachedAnalyzerDiagnostics(diagnostics: {v: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null}): boolean;
        GetAnalyzerDiagnostics(waitForAnalysis?: boolean, cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        GetAnalyzers(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.AnalyzerInfo> | null;
        GetCodeActions(position: number, selectionStart: number, selectionLength: number, options: Kusto.Language.Editor.CodeActionOptions | null, waitForAnalysis: boolean, actorName: string | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionInfo | null;
        ApplyCodeAction(action: Kusto.Language.Editor.ApplyAction | null, caretPosition: number, options: Kusto.Language.Editor.CodeActionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionResult | null;
        GetClassifications(start: number, length: number, clipToRange?: boolean, waitForAnalysis?: boolean, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.ClassificationInfo | null;
        GetClientParameters(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClientParameter> | null;
        GetOutlines(options: Kusto.Language.Editor.OutliningOptions | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.OutlineInfo | null;
        ShouldAutoComplete(position: number, key: number, cancellationToken?: Kusto.Language.Utils.CancellationToken): boolean;
        GetCompletionItems(position: number, options?: Kusto.Language.Editor.CompletionOptions | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CompletionInfo | null;
        GetQuickInfo(position: number, options?: Kusto.Language.Editor.QuickInfoOptions | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.QuickInfo | null;
        GetElement(position: number, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.TextRange;
        GetRelatedElements(position: number, options?: Kusto.Language.Editor.FindRelatedOptions, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.RelatedInfo | null;
        GetClusterReferences(cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClusterReference> | null;
        GetDatabaseReferences(cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.DatabaseReference> | null;
        GetMinimalText(kind: Kusto.Language.Editor.MinimalTextKind, cancellationToken?: Kusto.Language.Utils.CancellationToken): string | null;
        GetFormattedText(options?: Kusto.Language.Editor.FormattingOptions | null, caretPosition?: number, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.FormattedText | null;
    }
    interface KustoCodeServiceFunc extends Function {
        prototype: KustoCodeService;
        $ctor1: {
            new (text: string | null, globals: Kusto.Language.GlobalState | null): KustoCodeService
        };
        ctor: {
            new (code: Kusto.Language.KustoCode | null): KustoCodeService
        };
        GetIncludeTrivia(kind: Kusto.Language.Editor.MinimalTextKind): Kusto.Language.Syntax.IncludeTrivia;
    }
    var KustoCodeService: KustoCodeServiceFunc;

    /**
     * An {@link } action that is composed of multiple actions.
     *
     * @public
     * @class Kusto.Language.Editor.MultiAction
     * @augments Kusto.Language.Editor.ApplyAction
     */
    interface MultiAction extends Kusto.Language.Editor.ApplyAction {
        Actions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ApplyAction> | null;
    }
    interface MultiActionFunc extends Function {
        prototype: MultiAction;
        ctor: {
            new (kind: string | null, title: string | null, description: string | null, actions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ApplyAction> | null): MultiAction
        };
    }
    var MultiAction: MultiActionFunc;

    /**
     * An {@link } that is just a single action.
     *
     * @public
     * @class Kusto.Language.Editor.SingleAction
     * @augments Kusto.Language.Editor.ApplyAction
     */
    interface SingleAction extends Kusto.Language.Editor.ApplyAction {
    }
    interface SingleActionFunc extends Function {
        prototype: SingleAction;
        new (kind: string | null, title: string | null, description: string | null, data: System.Collections.Generic.IReadOnlyList$1<string> | null): SingleAction;
    }
    var SingleAction: SingleActionFunc;

    interface InlineDatabaseFunctionActor extends Kusto.Language.Editor.KustoActor {
        GetActions(service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, position: number, selectionStart: number, selectionLength: number, options: Kusto.Language.Editor.CodeActionOptions | null, actions: System.Collections.Generic.List$1<Kusto.Language.Editor.CodeAction> | null, waitForAnalysis: boolean, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
        ApplyAction(service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, action: Kusto.Language.Editor.ApplyAction | null, caretPosition: number, options: Kusto.Language.Editor.CodeActionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionResult | null;
    }
    interface InlineDatabaseFunctionActorFunc extends Function {
        prototype: InlineDatabaseFunctionActor;
        new (): InlineDatabaseFunctionActor;
        InlineOnceKind: string | null;
        InlineRecursiveKind: string | null;
        InlineAllOnceKind: string | null;
        InlineAllRecursiveKind: string | null;
        /**
         * Inline the fuction referenced at the position.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @memberof Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @param   {Kusto.Language.KustoCode}                  code                
         * @param   {number}                                    functionPosition    
         * @param   {number}                                    caretPosition
         * @return  {Kusto.Language.Editor.CodeActionResult}
         */
        /**
         * Inline the function referenced at the position, recursively.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @memberof Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @param   {Kusto.Language.KustoCode}                  code                
         * @param   {number}                                    functionPosition    
         * @param   {number}                                    caretPosition
         * @return  {Kusto.Language.Editor.CodeActionResult}
         */
        /**
         * Inline all functions referenced within the text range.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @memberof Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @param   {Kusto.Language.KustoCode}                  code               
         * @param   {number}                                    selectionStart     
         * @param   {number}                                    selectionLength    
         * @param   {number}                                    caretPosition
         * @return  {Kusto.Language.Editor.CodeActionResult}
         */
        /**
         * Inline all functions referenced within the text range, recursively.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @memberof Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @param   {Kusto.Language.KustoCode}                  code               
         * @param   {number}                                    selectionStart     
         * @param   {number}                                    selectionLength    
         * @param   {number}                                    caretPosition
         * @return  {Kusto.Language.Editor.CodeActionResult}
         */
        /**
         * Gets a list of the database functions referenced the specified range.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @memberof Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @param   {Kusto.Language.KustoCode}                      code               
         * @param   {number}                                        selectionStart     
         * @param   {number}                                        selectionLength
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Inline the specified database functions.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @memberof Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @param   {Kusto.Language.KustoCode}                      code             
         * @param   {System.Collections.Generic.IReadOnlyList$1}    functions        
         * @param   {number}                                        caretPosition    
         * @param   {boolean}                                       recursive
         * @return  {Kusto.Language.Editor.CodeActionResult}
         */
        /**
         * Inline the specified database function.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @memberof Kusto.Language.Editor.InlineDatabaseFunctionActor
         * @param   {Kusto.Language.KustoCode}                  code             
         * @param   {Kusto.Language.Symbols.FunctionSymbol}     function         
         * @param   {number}                                    caretPosition
         * @return  {Kusto.Language.Editor.CodeActionResult}
         */
    }
    var InlineDatabaseFunctionActor: InlineDatabaseFunctionActorFunc;

    interface QuickInfoOptions {
        /**
         * Shows item descriptions for this position.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.QuickInfoOptions
         * @function ShowDescriptions
         * @type boolean
         */
        ShowDescriptions: boolean;
        /**
         * Shows diagnostics for this position.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.QuickInfoOptions
         * @function ShowDiagnostics
         * @type boolean
         */
        ShowDiagnostics: boolean;
        /**
         * A comma separated list of diagnostic codes that are disabled.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.QuickInfoOptions
         * @function DiagnosticFilter
         * @type Kusto.Language.Editor.DisabledDiagnostics
         */
        DiagnosticFilter: Kusto.Language.Editor.DisabledDiagnostics | null;
        WithShowDescriptions(show: boolean): Kusto.Language.Editor.QuickInfoOptions | null;
        WithShowDiagnostics(show: boolean): Kusto.Language.Editor.QuickInfoOptions | null;
        WithDiagnosticFilter(filter: Kusto.Language.Editor.DisabledDiagnostics | null): Kusto.Language.Editor.QuickInfoOptions | null;
    }
    interface QuickInfoOptionsFunc extends Function {
        prototype: QuickInfoOptions;
        Default: Kusto.Language.Editor.QuickInfoOptions | null;
    }
    var QuickInfoOptions: QuickInfoOptionsFunc;

    interface AnalyzerInfo {
        /**
         * The name of the analyzer.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.AnalyzerInfo
         * @function Name
         * @type string
         */
        Name: string | null;
        /**
         * The diagnostics produced by this analyzer.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.AnalyzerInfo
         * @function Diagnostics
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
    }
    interface AnalyzerInfoFunc extends Function {
        prototype: AnalyzerInfo;
        new (name: string | null, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): AnalyzerInfo;
    }
    var AnalyzerInfo: AnalyzerInfoFunc;

    interface QuickInfoItem {
        Kind: Kusto.Language.Editor.QuickInfoKind;
        Parts: System.Collections.Generic.IReadOnlyCollection$1<Kusto.Language.Editor.ClassifiedText> | null;
        Text: string | null;
    }
    interface QuickInfoItemFunc extends Function {
        prototype: QuickInfoItem;
        $ctor2: {
            new (kind: Kusto.Language.Editor.QuickInfoKind, text: string | null): QuickInfoItem
        };
        ctor: {
            new (kind: Kusto.Language.Editor.QuickInfoKind, parts: Kusto.Language.Editor.ClassifiedText[] | null): QuickInfoItem
        };
        $ctor1: {
            new (kind: Kusto.Language.Editor.QuickInfoKind, parts: System.Collections.Generic.IEnumerable$1<Kusto.Language.Editor.ClassifiedText> | null): QuickInfoItem
        };
    }
    var QuickInfoItem: QuickInfoItemFunc;

    /**
     * A hint that describes the category of syntax element that belongs in
     an associated syntax node location, used to determine appropriate
     completion items.
     *
     * @public
     * @class Kusto.Language.Editor.CompletionHint
     */
    enum CompletionHint {
        None = 0,
        Inherit = 1,
        Expression = 2,
        Scalar = 4,
        Tabular = 8,
        NonScalar = 16,
        Boolean = 32,
        Number = 64,
        Literal = 128,
        Aggregate = 256,
        TabularFunction = 512,
        ScalarFunction = 1024,
        DatabaseFunction = 2048,
        Function = 4096,
        Declaration = 8192,
        Column = 16384,
        Table = 32768,
        Database = 65536,
        Cluster = 131072,
        EntityGroup = 262144,
        Graph = 524288,
        Syntax = 1048576,
        Query = 2097152,
        Command = 4194304,
        Keyword = 8388608,
        Clause = 16777216,
        MaterializedView = 33554432,
        Option = 67108864,
        ExternalTable = 134217728,
        StoredQueryResult = 268435456,
        GraphModel = 536870912,
        GraphSnapshot = 1073741824
    }

    /**
     * The completion info resulting from a call to {@link }
     *
     * @public
     * @class Kusto.Language.Editor.CompletionInfo
     */
    interface CompletionInfo {
        /**
         * The completion items.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionInfo
         * @function Items
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Items: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CompletionItem> | null;
        /**
         * The start of the text that each {@link } will replace.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionInfo
         * @function EditStart
         * @type number
         */
        EditStart: number;
        /**
         * The length of the text that each {@link } will replace.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionInfo
         * @function EditLength
         * @type number
         */
        EditLength: number;
    }
    interface CompletionInfoFunc extends Function {
        prototype: CompletionInfo;
        new (items: System.Collections.Generic.IEnumerable$1<Kusto.Language.Editor.CompletionItem> | null, editStart: number, editLength: number): CompletionInfo;
        Empty: Kusto.Language.Editor.CompletionInfo | null;
    }
    var CompletionInfo: CompletionInfoFunc;

    /**
     * Represents an individual option in an intellisense completion list.
     *
     * @public
     * @class Kusto.Language.Editor.CompletionItem
     */
    interface CompletionItem {
        /**
         * The kind of {@link }.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionItem
         * @function Kind
         * @type Kusto.Language.Editor.CompletionKind
         */
        Kind: Kusto.Language.Editor.CompletionKind;
        /**
         * The text to show in the completion list.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionItem
         * @function DisplayText
         * @type string
         */
        DisplayText: string | null;
        /**
         * The text to match on when typing.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionItem
         * @function MatchText
         * @type string
         */
        MatchText: string | null;
        /**
         * The text to order the item by.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionItem
         * @function OrderText
         * @type string
         */
        OrderText: string | null;
        /**
         * The text segments that are applied on completion of this item.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionItem
         * @function ApplyTexts
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        ApplyTexts: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CompletionText> | null;
        /**
         * The text to apply before the cursor/caret.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CompletionItem
         * @function BeforeText
         * @type string
         */
        BeforeText: string | null;
        /**
         * The text apply after the cursor/caret.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CompletionItem
         * @function AfterText
         * @type string
         */
        AfterText: string | null;
        EditText: string | null;
        /**
         * True if completion should be retriggered automatically after this item is inserted and the caret positioned.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionItem
         * @function Retrigger
         * @type boolean
         */
        Retrigger: boolean;
        /**
         * Creates a new {@link } with the {@link } property modified.
         This is typically used to select an icon/glyph for the completion item UI.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {Kusto.Language.Editor.CompletionKind}    kind
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        WithKind(kind: Kusto.Language.Editor.CompletionKind): Kusto.Language.Editor.CompletionItem | null;
        /**
         * Creates a new {@link } with the {@link } property modified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {string}                                  displayText
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        WithDisplayText(displayText: string | null): Kusto.Language.Editor.CompletionItem | null;
        /**
         * Creates a new {@link } with the {@link } property modified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {string}                                  matchText
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        WithMatchText(matchText: string | null): Kusto.Language.Editor.CompletionItem | null;
        /**
         * Creates a new {@link } with the {@link } property modified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {string}                                  orderText
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        WithOrderText(orderText: string | null): Kusto.Language.Editor.CompletionItem | null;
        /**
         * Creates a new {@link } with the {@link } property modified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {System.Collections.Generic.IReadOnlyList$1}    applyTexts
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        WithApplyTexts$1(applyTexts: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CompletionText> | null): Kusto.Language.Editor.CompletionItem | null;
        /**
         * Creates a new {@link } with the {@link } property modified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {Array.<Kusto.Language.Editor.CompletionText>}    applyTexts
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        WithApplyTexts(applyTexts: Kusto.Language.Editor.CompletionText[] | null): Kusto.Language.Editor.CompletionItem | null;
        /**
         * Creates a new {@link } with the {@link } property modified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {string}                                  textWithMarkers
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        WithApplyTexts$2(textWithMarkers: string | null): Kusto.Language.Editor.CompletionItem | null;
        /**
         * Creates a new {@link } with the {@link } property modified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {string}                                  beforeText
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        WithBeforeText(beforeText: string | null): Kusto.Language.Editor.CompletionItem | null;
        WithEditText(editText: string | null): Kusto.Language.Editor.CompletionItem | null;
        /**
         * Creates a new {@link } with the {@link } property modified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {string}                                  afterText
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        WithAfterText(afterText: string | null): Kusto.Language.Editor.CompletionItem | null;
        /**
         * Creates a new {@link } with the {@link } property modified.
         *
         * @instance
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {Kusto.Language.Editor.CompletionRank}    rank
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        /**
         * Creates a new {@link } with the {@link } property modified.
         *
         * @instance
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        /**
         * Creates a new {@link } with the {@link } property modified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {boolean}                                 retrigger
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        WithRetrigger(retrigger: boolean): Kusto.Language.Editor.CompletionItem | null;
    }
    interface CompletionItemFunc extends Function {
        prototype: CompletionItem;
        /**
         * Creates a {@link } instance.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {Kusto.Language.Editor.CompletionKind}        kind           The kind of completion item.
         * @param   {string}                                      displayText    The text to display in the completion list for the item.
         * @param   {string}                                      beforeText     The text to apply before the cursor/caret. If not specified the displayText is used.
         * @param   {string}                                      afterText      The text to apply after the cursor/caret.
         * @param   {string}                                      matchText      The text to match against user typing. If not specified the displayText is used.
         * @param   {string}                                      orderText      The text to order the item by.
         * @param   {Kusto.Language.Editor.CompletionRank}        rank           The rank of the completion item determines the category for ordering in the completion list.
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority       The priority of the completion item determines the ordering within the items rank.
         * @param   {boolean}                                     retrigger      If true, the editor will retrigger completion after this item is inserted.
         * @return  {void}
         */
        $ctor1: {
            new (kind: Kusto.Language.Editor.CompletionKind, displayText: string | null, beforeText: string | null, afterText: string | null, matchText: string | null, orderText: string | null, rank: Kusto.Language.Editor.CompletionRank, priority: Kusto.Language.Editor.CompletionPriority, retrigger: boolean): CompletionItem
        };
        /**
         * Creates a {@link } instance.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CompletionItem
         * @memberof Kusto.Language.Editor.CompletionItem
         * @param   {string}                                      displayText    The text to display in the completion list for the item.
         * @param   {string}                                      beforeText     The text to apply before the cursor/caret. If not specified the displayText is used.
         * @param   {string}                                      afterText      The text to apply after the cursor/caret.
         * @param   {string}                                      matchText      The text to match against user typing. If not specified the displayText is used.
         * @param   {string}                                      orderText      The text to order the item by.
         * @param   {Kusto.Language.Editor.CompletionRank}        rank           The rank of the completion item determines the category for ordering in the completion list.
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority       The priority of the completion item determines the ordering within the items rank.
         * @param   {boolean}                                     retrigger      If true, the editor will retrigger completion after this item is inserted.
         * @return  {void}
         */
        $ctor2: {
            new (displayText: string | null, beforeText: string | null, afterText: string | null, matchText: string | null, orderText: string | null, rank: Kusto.Language.Editor.CompletionRank, priority: Kusto.Language.Editor.CompletionPriority, retrigger: boolean): CompletionItem
        };
    }
    var CompletionItem: CompletionItemFunc;

    enum CompletionKind {
        Unknown = 0,
        Keyword = 1,
        Punctuation = 2,
        Syntax = 3,
        Identifier = 4,
        Example = 5,
        ScalarPrefix = 6,
        TabularPrefix = 7,
        TabularSuffix = 8,
        QueryPrefix = 9,
        CommandPrefix = 10,
        ScalarInfix = 11,
        RenderChart = 12,
        Column = 13,
        Table = 14,
        BuiltInFunction = 15,
        LocalFunction = 16,
        DatabaseFunction = 17,
        AggregateFunction = 18,
        Parameter = 19,
        Variable = 20,
        Database = 21,
        Cluster = 22,
        MaterialiedView = 23,
        EntityGroup = 24,
        Graph = 25,
        ScalarType = 26,
        Option = 27,
        StoredQueryResult = 28
    }

    interface CompletionOptions {
        IncludeSymbols: boolean;
        IncludeSyntax: boolean;
        IncludePunctuationOnlySyntax: boolean;
        EnableParameterInjection: boolean;
        AutoAppendWhitespace: boolean;
        IncludeExtendedSyntax: boolean;
        IncludeFunctions: Kusto.Language.IncludeFunctionKind;
        WithIncludeSymbols(include: boolean): Kusto.Language.Editor.CompletionOptions | null;
        WithIncludeFunctions(kind: Kusto.Language.IncludeFunctionKind): Kusto.Language.Editor.CompletionOptions | null;
        WithIncludeFunctions$1(include: boolean): Kusto.Language.Editor.CompletionOptions | null;
        WithIncludeSyntax(include: boolean): Kusto.Language.Editor.CompletionOptions | null;
        WithIncludePunctuationOnlySyntax(include: boolean): Kusto.Language.Editor.CompletionOptions | null;
        WithIncludeExtendedSyntax(include: boolean): Kusto.Language.Editor.CompletionOptions | null;
        WithEnableParameterInjection(enable: boolean): Kusto.Language.Editor.CompletionOptions | null;
        WithAutoAppendWhitespace(enable: boolean): Kusto.Language.Editor.CompletionOptions | null;
    }
    interface CompletionOptionsFunc extends Function {
        prototype: CompletionOptions;
        OptionFlags: CompletionOptions.OptionFlagsFunc;
        Default: Kusto.Language.Editor.CompletionOptions | null;
    }
    var CompletionOptions: CompletionOptionsFunc;
    module CompletionOptions {
        interface OptionFlags {
        }
        interface OptionFlagsFunc extends Function {
            prototype: OptionFlags;
            IncludeSymbols: number;
            IncludeSyntax: number;
            IncludePunctuation: number;
            EnableParameterInjection: number;
            AutoAppendWhitespace: number;
            IncludeExtendedSyntax: number;
            Default: number;
        }
    }

    /**
     * The priority that controls the ordering of completion items within their rank.
     *
     * @public
     * @class Kusto.Language.Editor.CompletionPriority
     */
    enum CompletionPriority {
        Top = 1,
        High = 2,
        Normal = 3,
        Low = 4,
        Default
    }

    /**
     * The rank that control the ordering of completion items.
     *
     * @public
     * @class Kusto.Language.Editor.CompletionRank
     */
    enum CompletionRank {
        Literal = 1,
        Aggregate = 2,
        Column = 3,
        Table = 4,
        Entity = 5,
        Variable = 6,
        Function = 7,
        Keyword = 8,
        StringOperator = 9,
        MathOperator = 10,
        Other = 11,
        Default = 12
    }

    /**
     * Generates the text that is the display text in a {@link } for a given symbol.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Editor.CompletionDisplay
     */
    interface CompletionDisplay {
    }
    interface CompletionDisplayFunc extends Function {
        prototype: CompletionDisplay;
        new (): CompletionDisplay;
        /**
         * Returns the display text for the specified symbol.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.CompletionDisplay
         * @memberof Kusto.Language.Editor.CompletionDisplay
         * @param   {Kusto.Language.Symbols.Symbol}    symbol      
         * @param   {boolean}                          nameOnly
         * @return  {string}
         */
        GetText(symbol: Kusto.Language.Symbols.Symbol | null, nameOnly?: boolean): string | null;
    }
    var CompletionDisplay: CompletionDisplayFunc;

    /**
     * An individual text segment for a {@link }
     *
     * @public
     * @class Kusto.Language.Editor.CompletionText
     */
    interface CompletionText {
        /**
         * The text to apply to insert.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionText
         * @function Text
         * @type string
         */
        Text: string | null;
        /**
         * True if the caret should be moved to start of this text after being inserted.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionText
         * @function Caret
         * @type boolean
         */
        Caret: boolean;
        /**
         * True if the text should be selected after being inserted.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CompletionText
         * @function Select
         * @type boolean
         */
        Select: boolean;
    }
    interface CompletionTextFunc extends Function {
        prototype: CompletionText;
        /**
         * Creates a new {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.CompletionText
         * @memberof Kusto.Language.Editor.CompletionText
         * @param   {string}                                  text      
         * @param   {boolean}                                 caret     
         * @param   {boolean}                                 select
         * @return  {Kusto.Language.Editor.CompletionText}
         */
        Create(text: string | null, caret?: boolean, select?: boolean): Kusto.Language.Editor.CompletionText | null;
        /**
         * Creates a new {@link } that is intended to be editted.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.CompletionText
         * @memberof Kusto.Language.Editor.CompletionText
         * @param   {string}                                  text
         * @return  {Kusto.Language.Editor.CompletionText}
         */
        CreateEdit(text: string | null): Kusto.Language.Editor.CompletionText | null;
        /**
         * Parses the text into a list of {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.CompletionText
         * @memberof Kusto.Language.Editor.CompletionText
         * @param   {string}                                        textWithMarkers    
         * @param   {string}                                        cursorMarker       
         * @param   {string}                                        startMarker        
         * @param   {string}                                        endMarker
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        Parse(textWithMarkers: string | null, cursorMarker?: string | null, startMarker?: string | null, endMarker?: string | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CompletionText> | null;
    }
    var CompletionText: CompletionTextFunc;

    interface DisabledDiagnostics {
        toString(): string | null;
        IsSeverityEnabled(severity: string | null): boolean;
        IsServerityDisabled(severity: string | null): boolean;
        IsCodeEnabled(code: string | null): boolean;
        IsCodeDisabled(code: string | null): boolean;
        IsDiagnosticEnabled(diagnostic: Kusto.Language.Diagnostic | null): boolean;
        IsDiagnosticDisabled(diagnostic: Kusto.Language.Diagnostic | null): boolean;
        ToBuilder(): Kusto.Language.Editor.DisabledDiagnostics.Builder | null;
        WithCodeEnabled(code: string | null, enabled: boolean): Kusto.Language.Editor.DisabledDiagnostics | null;
        WithSeverityEnabled(severity: string | null, enabled: boolean): Kusto.Language.Editor.DisabledDiagnostics | null;
    }
    interface DisabledDiagnosticsFunc extends Function {
        prototype: DisabledDiagnostics;
        Builder: Kusto.Language.Editor.DisabledDiagnostics.BuilderFunc;
        $ctor2: {
            new (text: string | null): DisabledDiagnostics
        };
        new (): DisabledDiagnostics;
        ctor: {
            new (): DisabledDiagnostics
        };
        Default: Kusto.Language.Editor.DisabledDiagnostics | null;
        Parse(text: string | null): Kusto.Language.Editor.DisabledDiagnostics | null;
        CanDisableSeverity(severity: string | null): boolean;
        CanDisableCode(code: string | null): boolean;
    }
    var DisabledDiagnostics: DisabledDiagnosticsFunc;
    module DisabledDiagnostics {
        interface Builder {
            ToDisabledDiagnostics(): Kusto.Language.Editor.DisabledDiagnostics | null;
            toString(): string | null;
            SetSeverityEnabled(severity: string | null, enabled: boolean): void;
            SetCodeEnabled(code: string | null, enabled: boolean): void;
        }
        interface BuilderFunc extends Function {
            prototype: Builder;
            $ctor1: {
                new (disabledDiagnostics: Kusto.Language.Editor.DisabledDiagnostics | null): Builder
            };
            new (): Builder;
            ctor: {
                new (): Builder
            };
        }
    }

    /**
     * The spacing style of an operator or token that has two sides, such as a binary operator or a comma.
     *
     * @public
     * @class Kusto.Language.Editor.DualSpacingStyle
     */
    enum DualSpacingStyle {
        AsIs = 0,
        Neither = 1,
        Before = 2,
        After = 3,
        Both = 4
    }

    /**
     * An immutable string-like type that remembers the changes made to construct its current form.
     *
     * @public
     * @class Kusto.Language.Editor.EditString
     */
    interface EditString {
        /**
         * The text before any changes.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.EditString
         * @function OriginalText
         * @type string
         */
        OriginalText: string | null;
        /**
         * The text after all the changes.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.EditString
         * @function CurrentText
         * @type string
         */
        CurrentText: string | null;
        /**
         * The length of the current text.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.EditString
         * @function Length
         * @type number
         */
        Length: number;
        /**
         * The character at the index of the current text.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {number}    index
         * @return  {number}
         */
        getItem(index: number): number;
        /**
         * The starting index of the value within the current text.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {string}    value
         * @return  {number}
         */
        IndexOf(value: string | null): number;
        /**
         * Returns a list of collective changes between the original and current text
         such that if applied to the original text (via ApplyAll) would produce the current text.
         This list of changes is not guaranteed to match the exact sequence of edits originally made
         to create the current text.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetChanges(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null;
        /**
         * Returns the current text.
         *
         * @instance
         * @public
         * @override
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @return  {string}
         */
        toString(): string | null;
        /**
         * Returns a new {@link } with the range of characters replaced with the specified text.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {number}                              start     
         * @param   {number}                              length    
         * @param   {string}                              text
         * @return  {Kusto.Language.Editor.EditString}
         */
        ReplaceAt(start: number, length: number, text: string | null): Kusto.Language.Editor.EditString | null;
        /**
         * Returns a new {@link } with the text inserted as the position.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {number}                              position    
         * @param   {string}                              text
         * @return  {Kusto.Language.Editor.EditString}
         */
        Insert(position: number, text: string | null): Kusto.Language.Editor.EditString | null;
        /**
         * Returns a new {@link } with the text appended to the end.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {string}                              text
         * @return  {Kusto.Language.Editor.EditString}
         */
        Append(text: string | null): Kusto.Language.Editor.EditString | null;
        /**
         * Returns a new {@link } with the text prepending to the start.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {string}                              text
         * @return  {Kusto.Language.Editor.EditString}
         */
        Prepend(text: string | null): Kusto.Language.Editor.EditString | null;
        /**
         * Returns a new {@link } with the range of characters removed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {number}                              start     
         * @param   {number}                              length
         * @return  {Kusto.Language.Editor.EditString}
         */
        Remove(start: number, length: number): Kusto.Language.Editor.EditString | null;
        /**
         * Returns a new {@link } containing only the range of characters.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {number}                              start     
         * @param   {number}                              length
         * @return  {Kusto.Language.Editor.EditString}
         */
        Substring$1(start: number, length: number): Kusto.Language.Editor.EditString | null;
        /**
         * Returns a new {@link } containing only the characters from the start position until the end.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {number}                              start
         * @return  {Kusto.Language.Editor.EditString}
         */
        Substring(start: number): Kusto.Language.Editor.EditString | null;
        /**
         * Trims the whitespace from the start of the string.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @return  {Kusto.Language.Editor.EditString}
         */
        TrimLeft(): Kusto.Language.Editor.EditString | null;
        /**
         * Trims the whitespace from the end of the string.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @return  {Kusto.Language.Editor.EditString}
         */
        TrimRight(): Kusto.Language.Editor.EditString | null;
        /**
         * Trims the whitespace from the start and end of the string.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @return  {Kusto.Language.Editor.EditString}
         */
        Trim(): Kusto.Language.Editor.EditString | null;
        /**
         * Returns a new {@link } with all occurrances of the old text replaced with the new text.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {string}                              oldText    
         * @param   {string}                              newText
         * @return  {Kusto.Language.Editor.EditString}
         */
        Replace(oldText: string | null, newText: string | null): Kusto.Language.Editor.EditString | null;
        /**
         * Returns a new {@link } with the single edit applied.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {Kusto.Language.Editor.TextEdit}      edit
         * @return  {Kusto.Language.Editor.EditString}
         */
        Apply(edit: Kusto.Language.Editor.TextEdit): Kusto.Language.Editor.EditString | null;
        /**
         * Returns a new {@link } with all the edits applied.
         Each edit is specified against positions in the current text and must be non-overlapping with other edits.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {System.Collections.Generic.IReadOnlyList$1}    edits
         * @return  {Kusto.Language.Editor.EditString}
         */
        ApplyAll$1(edits: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null): Kusto.Language.Editor.EditString | null;
        /**
         * Returns a new {@link } with all the edits applied.
         Each edit is specified against positions in the current text and must be non-overlapping with other edits.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {Array.<Kusto.Language.Editor.TextEdit>}    edits
         * @return  {Kusto.Language.Editor.EditString}
         */
        ApplyAll(edits: Kusto.Language.Editor.TextEdit[] | null): Kusto.Language.Editor.EditString | null;
        /**
         * Return true if the list of edits can be applied via ApplyAll.
         Returns false if the edits are overlapping or out of bounds of the current text.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {System.Collections.Generic.IReadOnlyList$1}    edits
         * @return  {boolean}
         */
        CanApplyAll(edits: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null): boolean;
        /**
         * Returns a new {@link } containing both old and new edits.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {string}                                        newText     
         * @param   {System.Collections.Generic.IReadOnlyList$1}    newEdits
         * @return  {Kusto.Language.Editor.EditString}
         */
        /**
         * Gets the position in the current text corresponding to the position in the original text.
         If original position corresponds to a region of text that was removed or replaced, it will return the position 
         at the start of where the change occurred.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {number}                                originalPosition    
         * @param   {Kusto.Language.Editor.PositionBias}    bias
         * @return  {number}
         */
        GetCurrentPosition(originalPosition: number, bias?: Kusto.Language.Editor.PositionBias): number;
        /**
         * Gets the current range start and length for the given original range start and length.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {number}          originalStart     
         * @param   {number}          originalLength    
         * @param   {System.Int32}    currentStart      
         * @param   {System.Int32}    currentLength
         * @return  {void}
         */
        GetCurrentRange(originalStart: number, originalLength: number, currentStart: {v: number}, currentLength: {v: number}): void;
        /**
         * Gets the position in the original text corresponding to the position in the current text.
         If current position corresponds to a region of the text that was inserted, it will return the position
         at the start of where change occurred.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {number}                                currentPosition    
         * @param   {Kusto.Language.Editor.PositionBias}    bias
         * @return  {number}
         */
        GetOriginalPosition(currentPosition: number, bias?: Kusto.Language.Editor.PositionBias): number;
        /**
         * Gets the smallest range within the current text encompassing all of the changes.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @return  {Kusto.Language.Editor.TextRange}
         */
        GetChangeRange(): Kusto.Language.Editor.TextRange;
        /**
         * Returns a new {@link } with the blank lines removed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @return  {Kusto.Language.Editor.EditString}
         */
        RemoveBlankLines(): Kusto.Language.Editor.EditString | null;
        /**
         * Returns a new {@link } with all the line breaks replaced with the specied value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {string}                              newValue
         * @return  {Kusto.Language.Editor.EditString}
         */
        ReplaceLineBreaks(newValue: string | null): Kusto.Language.Editor.EditString | null;
    }
    interface EditStringFunc extends Function {
        prototype: EditString;
        Edit: Kusto.Language.Editor.EditString.EditFunc;
        /**
         * Create a new {@link } in a pre-edit state.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {string}    text
         * @return  {void}
         */
        ctor: {
            new (text: string | null): EditString
        };
        /**
         * An empty {@link }
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.EditString
         * @type Kusto.Language.Editor.EditString
         */
        Empty: Kusto.Language.Editor.EditString | null;
        /**
         * Convert a list of collective changes to a list of sequential changes.
         Collective changes are a set of edits each specified at a position in the original text.
         Sequential changes are a set of edits each specified at positions in the logical text emerging after applying the prior edits.
         Collective changes can be used in a call to ApplyAll.
         Sequential changes can be used in a series of calls to Apply, one after the other.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {System.Collections.Generic.IReadOnlyList$1}    collectiveChanges
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        ConvertToSequentialChanges(collectiveChanges: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null;
        /**
         * Returns the list of edits in order of start position.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {System.Collections.Generic.IReadOnlyList$1}    edits
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Returns true if the list of edits is already in order.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {System.Collections.Generic.IReadOnlyList$1}    edits
         * @return  {boolean}
         */
        /**
         * Gets the new text with the edits applied.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {string}                                      text     
         * @param   {System.Collections.Generic.IEnumerable$1}    edits
         * @return  {string}
         */
        /**
         * Combines a list of old edits with a list of new edits.
         The new edits' positions are relative to after the old edits have been applied.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {System.Collections.Generic.IReadOnlyList$1}    oldEdits    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    newEdits
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Translate a position across an edit.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {number}                                position        
         * @param   {number}                                start           
         * @param   {number}                                deleteLength    
         * @param   {number}                                insertLength    
         * @param   {Kusto.Language.Editor.PositionBias}    bias
         * @return  {number}
         */
        /**
         * Converts the {@link } to just its current text.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {Kusto.Language.Editor.EditString}    editString
         * @return  {string}
         */
        op_Implicit$1(editString: Kusto.Language.Editor.EditString): string;
        /**
         * Converts a string into an {@link } without any edits.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.EditString
         * @memberof Kusto.Language.Editor.EditString
         * @param   {string}                              text
         * @return  {Kusto.Language.Editor.EditString}
         */
        op_Implicit(text: string): Kusto.Language.Editor.EditString;
    }
    var EditString: EditStringFunc;
    module EditString {
        interface Edit {
            Start: number;
            DeleteLength: number;
            InsertLength: number;
            DeleteEnd: number;
            InsertEnd: number;
            $clone(to: Kusto.Language.Editor.EditString.Edit): Kusto.Language.Editor.EditString.Edit;
        }
        interface EditFunc extends Function {
            prototype: Edit;
            $ctor1: {
                new (start: number, deleteLength: number, insertLength: number): Edit
            };
            new (): Edit;
            ctor: {
                new (): Edit
            };
        }
    }

    enum QuickInfoKind {
        Text = 0,
        Error = 1,
        Warning = 2,
        Suggestion = 3,
        Column = 4,
        Table = 5,
        Database = 6,
        Cluster = 7,
        Literal = 8,
        Type = 9,
        Pattern = 10,
        Parameter = 11,
        Scalar = 12,
        Variable = 13,
        LocalFunction = 14,
        BuiltInFunction = 15,
        DatabaseFunction = 16,
        Operator = 17,
        Command = 18,
        Option = 19,
        Graph = 20
    }

    enum FindRelatedOptions {
        None = 0,
        SeeThroughVariables = 1
    }

    /**
     * A set of text edits meant to be applied to a query's source text and the new position 
     of the caret after the edits have been applied.
     *
     * @class Kusto.Language.Editor.FixEdits
     */
    interface FixEdits {
        /**
         * One or more edits to be applied to the text of the query.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FixEdits
         * @function Edits
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Edits: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null;
        /**
         * The new position of the caret after the edits are applied.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FixEdits
         * @function NewCaretPosition
         * @type number
         */
        NewCaretPosition: number;
        /**
         * The {@link } to use when adjusting the caret position 
         when applying multiple fix results.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FixEdits
         * @function Bias
         * @type Kusto.Language.Editor.PositionBias
         */
        Bias: Kusto.Language.Editor.PositionBias;
    }
    interface FixEditsFunc extends Function {
        prototype: FixEdits;
        /**
         * Construct a new {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.FixEdits
         * @memberof Kusto.Language.Editor.FixEdits
         * @param   {number}                                        newCaretPosition    The new position of the cursor in pre-edit units.
         * @param   {Kusto.Language.Editor.PositionBias}            bias                The bias to use when computing the new cursor position in post-edit units.
         * @param   {System.Collections.Generic.IReadOnlyList$1}    edits               A list of non-overlapping edits in pre-edit units.
         * @return  {void}
         */
        $ctor1: {
            new (newCaretPosition: number, bias: Kusto.Language.Editor.PositionBias, edits: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null): FixEdits
        };
        /**
         * Construct a new {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.FixEdits
         * @memberof Kusto.Language.Editor.FixEdits
         * @param   {number}                                        newCaretPosition    The new position of the cursor in pre-edit units.
         * @param   {System.Collections.Generic.IReadOnlyList$1}    edits               A list of non-overlapping edits in pre-edit units.
         * @return  {void}
         */
        $ctor3: {
            new (newCaretPosition: number, edits: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null): FixEdits
        };
        /**
         * Construct a new {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.FixEdits
         * @memberof Kusto.Language.Editor.FixEdits
         * @param   {number}                                    newCaretPosition    The new position of the cursor in pre-edit units.
         * @param   {Kusto.Language.Editor.PositionBias}        bias                The bias to use when computing the new cursor position in post-edit units.
         * @param   {Array.<Kusto.Language.Editor.TextEdit>}    edits               A list of non-overlapping edits in pre-edit units.
         * @return  {void}
         */
        ctor: {
            new (newCaretPosition: number, bias: Kusto.Language.Editor.PositionBias, edits: Kusto.Language.Editor.TextEdit[] | null): FixEdits
        };
        /**
         * Construct a new {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.FixEdits
         * @memberof Kusto.Language.Editor.FixEdits
         * @param   {number}                                    newCaretPosition    The new position of the cursor in pre-edit units.
         * @param   {Array.<Kusto.Language.Editor.TextEdit>}    edits               A list of non-overlapping edits in pre-edit units.
         * @return  {void}
         */
        $ctor2: {
            new (newCaretPosition: number, edits: Kusto.Language.Editor.TextEdit[] | null): FixEdits
        };
    }
    var FixEdits: FixEditsFunc;

    /**
     * A {@link } implements code fixes or refactorings.
     *
     * @abstract
     * @class Kusto.Language.Editor.KustoActor
     */
    interface KustoActor {
        /**
         * The name of this actor.
         This is used find the actor that created the {@link } when the action is applied.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.KustoActor
         * @function Name
         * @type string
         */
        Name: string | null;
        /**
         * Gets the set of actions that this actor offers for the code at the given position.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.KustoActor
         * @memberof Kusto.Language.Editor.KustoActor
         * @param   {Kusto.Language.Editor.KustoCodeService}     service              
         * @param   {Kusto.Language.KustoCode}                   code                 
         * @param   {number}                                     position             
         * @param   {number}                                     selectionStart       
         * @param   {number}                                     selectionLength      
         * @param   {Kusto.Language.Editor.CodeActionOptions}    options              
         * @param   {System.Collections.Generic.List$1}          actions              
         * @param   {boolean}                                    waitForAnalysis      
         * @param   {Kusto.Language.Utils.CancellationToken}     cancellationToken
         * @return  {void}
         */
        GetActions(service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, position: number, selectionStart: number, selectionLength: number, options: Kusto.Language.Editor.CodeActionOptions | null, actions: System.Collections.Generic.List$1<Kusto.Language.Editor.CodeAction> | null, waitForAnalysis: boolean, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
        /**
         * Applies the action if possible.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.KustoActor
         * @memberof Kusto.Language.Editor.KustoActor
         * @param   {Kusto.Language.Editor.KustoCodeService}     serive               
         * @param   {Kusto.Language.KustoCode}                   code                 
         * @param   {Kusto.Language.Editor.ApplyAction}          action               
         * @param   {number}                                     caretPosition        
         * @param   {Kusto.Language.Editor.CodeActionOptions}    options              
         * @param   {Kusto.Language.Utils.CancellationToken}     cancellationToken
         * @return  {Kusto.Language.Editor.CodeActionResult}
         */
        ApplyAction(serive: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, action: Kusto.Language.Editor.ApplyAction | null, caretPosition: number, options: Kusto.Language.Editor.CodeActionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionResult | null;
    }
    interface KustoActorFunc extends Function {
        prototype: KustoActor;
        new (): KustoActor;
    }
    var KustoActor: KustoActorFunc;

    interface CodeServiceFeatures {
    }
    interface CodeServiceFeaturesFunc extends Function {
        prototype: CodeServiceFeatures;
        new (): CodeServiceFeatures;
        Diagnostics: string | null;
        Classification: string | null;
        Completion: string | null;
        Outlining: string | null;
        QuickInfo: string | null;
        ClusterReferences: string | null;
        DatabaseReferences: string | null;
        MinimalText: string | null;
        Formatting: string | null;
        ClientParameters: string | null;
    }
    var CodeServiceFeatures: CodeServiceFeaturesFunc;

    /**
     * A factory that constructs {@link } instances over blocks of code.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Editor.CodeServiceFactory
     */
    interface CodeServiceFactory {
        /**
         * .Gets a specific factory from the set of factories that compose this factory.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeServiceFactory
         * @memberof Kusto.Language.Editor.CodeServiceFactory
         * @param   {Function}    TFactory
         * @return  {TFactory}
         */
        GetFactory<TFactory>(TFactory: {prototype: TFactory}): TFactory | null;
        /**
         * Combine an additional factory with this factory.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeServiceFactory
         * @memberof Kusto.Language.Editor.CodeServiceFactory
         * @param   {Kusto.Language.Editor.CodeServiceFactory}    factory
         * @return  {Kusto.Language.Editor.CodeServiceFactory}
         */
        WithFactory(factory: Kusto.Language.Editor.CodeServiceFactory | null): Kusto.Language.Editor.CodeServiceFactory | null;
        TryGetCodeService(text: string | null, service: {v: Kusto.Language.Editor.CodeService | null}): boolean;
    }
    interface CodeServiceFactoryFunc extends Function {
        prototype: CodeServiceFactory;
        AggregateCodeServiceFactory: Kusto.Language.Editor.CodeServiceFactory.AggregateCodeServiceFactoryFunc;
        new (): CodeServiceFactory;
    }
    var CodeServiceFactory: CodeServiceFactoryFunc;
    module CodeServiceFactory {
        /**
         * A {@link } used when more than one kind of factory is needed.
         *
         * @private
         * @class Kusto.Language.Editor.CodeServiceFactory.AggregateCodeServiceFactory
         * @augments Kusto.Language.Editor.CodeServiceFactory
         */
        interface AggregateCodeServiceFactory extends Kusto.Language.Editor.CodeServiceFactory {
            TryGetCodeService(text: string | null, service: {v: Kusto.Language.Editor.CodeService | null}): boolean;
            GetFactory<TFactory>(TFactory: {prototype: TFactory}): TFactory | null;
            WithFactory(factory: Kusto.Language.Editor.CodeServiceFactory | null): Kusto.Language.Editor.CodeServiceFactory | null;
        }
        interface AggregateCodeServiceFactoryFunc extends Function {
            prototype: AggregateCodeServiceFactory;
            new (factories: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CodeServiceFactory> | null): AggregateCodeServiceFactory;
        }
    }

    /**
     * A service that provides intellisense and other editor related features over a piece of code.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Editor.CodeService
     */
    interface CodeService {
        /**
         * The kind of code found in the text (see {@link }).
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CodeService
         * @function Kind
         * @type string
         */
        Kind: string | null;
        /**
         * The text of the code.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CodeService
         * @function Text
         * @type string
         */
        Text: string | null;
        /**
         * Gets a combined list of all syntax, semantic and analyzer diagnostics.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {boolean}                                       waitForAnalysis      
         * @param   {Kusto.Language.Editor.DisabledDiagnostics}     filter               
         * @param   {Kusto.Language.Utils.CancellationToken}        cancellationToken
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetCombinedDiagnostics(waitForAnalysis?: boolean, filter?: Kusto.Language.Editor.DisabledDiagnostics | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * Gets the ranges of the text that can be expanded or collapsed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken    Optional cancellation token.
         * @return  {Kusto.Language.Editor.OutlineInfo}
         */
        GetOutlines$1(cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.OutlineInfo | null;
        /**
         * Determines if the feature is supported at the position within the text.
         If the position is not specified, then the feature is considered over the entire text.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {string}     feature     The name of feature. See {@link }
         * @param   {number}     position    The text position where the feature support is in question. If not specified, the entire block is considered.
         * @return  {boolean}
         */
        IsFeatureSupported(feature: string | null, position?: number): boolean;
        /**
         * Gets the diagnostics if already computed.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {System.Collections.Generic.IReadOnlyList}    diagnostics
         * @return  {boolean}
         */
        TryGetCachedDiagnostics(diagnostics: {v: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null}): boolean;
        /**
         * Gets the diagnostics for the code.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {boolean}                                       waitForAnalysis      If false, only return pre-computed results if any.
         * @param   {Kusto.Language.Utils.CancellationToken}        cancellationToken    Optional cancellation token.
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetDiagnostics(waitForAnalysis?: boolean, cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * Gets the analyzers diagnostics if already computed.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {System.Collections.Generic.IReadOnlyList}    diagnostics
         * @return  {boolean}
         */
        TryGetCachedAnalyzerDiagnostics(diagnostics: {v: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null}): boolean;
        /**
         * Gets any additional diagnostics for the code.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {boolean}                                       waitForAnalysis      If false, only return pre-computed results if any.
         * @param   {Kusto.Language.Utils.CancellationToken}        cancellationToken    Optional cancellation token.
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetAnalyzerDiagnostics(waitForAnalysis?: boolean, cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * Gets the list of information about the analyzers available via this {@link }.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetAnalyzers(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.AnalyzerInfo> | null;
        /**
         * Gets the set of code actions available at the specified position.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {number}                                     position             The text position to get code actions for.
         * @param   {number}                                     selectionStart       The start of the text selection range.
         * @param   {number}                                     selectionLength      The length of the text selection range (or zero if no selection).
         * @param   {Kusto.Language.Editor.CodeActionOptions}    options              An optional set of options.
         * @param   {boolean}                                    waitForAnalysis      If false only cached diagnostics will be considered.
         * @param   {string}                                     actorName            An optional actor's name to get actions from. If null, actions are obtains from all known actors.
         * @param   {Kusto.Language.Utils.CancellationToken}     cancellationToken    an optional cancellation token.
         * @return  {Kusto.Language.Editor.CodeActionInfo}
         */
        GetCodeActions(position: number, selectionStart: number, selectionLength: number, options?: Kusto.Language.Editor.CodeActionOptions | null, waitForAnalysis?: boolean, actorName?: string | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionInfo | null;
        /**
         * Applies the code action at ths specified position.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {Kusto.Language.Editor.ApplyAction}          action               The action to apply.
         * @param   {number}                                     caretPosition        The text position of the caret before the action is applied.
         * @param   {Kusto.Language.Editor.CodeActionOptions}    options              An optional set of options.
         * @param   {Kusto.Language.Utils.CancellationToken}     cancellationToken    an optional cancellation token.
         * @return  {Kusto.Language.Editor.CodeActionResult}
         */
        ApplyCodeAction(action: Kusto.Language.Editor.ApplyAction | null, caretPosition: number, options?: Kusto.Language.Editor.CodeActionOptions | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionResult | null;
        /**
         * Gets the classifications for the elements the specified text range.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {number}                                      start                The start of the text range to get classifications for.
         * @param   {number}                                      length               The length of the text range to get classifications for.
         * @param   {boolean}                                     clipToRange          If true, then adjust the start and end of classification ranges so they do not start before or go beyond the specified range.
         * @param   {boolean}                                     waitForAnalysis      If false, do not require semantic analysis to be performed.
         * @param   {Kusto.Language.Utils.CancellationToken}      cancellationToken    Optional cancellation token.
         * @return  {Kusto.Language.Editor.ClassificationInfo}
         */
        GetClassifications(start: number, length: number, clipToRange?: boolean, waitForAnalysis?: boolean, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.ClassificationInfo | null;
        /**
         * Gets the ranges of the text that can be expanded or collapsed.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {Kusto.Language.Editor.OutliningOptions}    options              Options for how outlining behaves.
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken    Optional cancellation token.
         * @return  {Kusto.Language.Editor.OutlineInfo}
         */
        GetOutlines(options: Kusto.Language.Editor.OutliningOptions | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.OutlineInfo | null;
        /**
         * Determines if a completion list should be shown automatically during typing.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {number}                                    position             The text position in question.
         * @param   {number}                                    key                  The last key typed.
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken    Optional cancellation token.
         * @return  {boolean}
         */
        ShouldAutoComplete(position: number, key: number, cancellationToken?: Kusto.Language.Utils.CancellationToken): boolean;
        /**
         * Gets the completion items for the position within the text.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {number}                                     position             The text position to get completion items for.
         * @param   {Kusto.Language.Editor.CompletionOptions}    options              Optional options.
         * @param   {Kusto.Language.Utils.CancellationToken}     cancellationToken    Optional cancellation token.
         * @return  {Kusto.Language.Editor.CompletionInfo}
         */
        GetCompletionItems(position: number, options?: Kusto.Language.Editor.CompletionOptions | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CompletionInfo | null;
        /**
         * Gets the {@link } associated with the position within the text.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {number}                                    position             The text position to get quick info for.
         * @param   {Kusto.Language.Editor.QuickInfoOptions}    options              Any options specified for quick info.
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken    Optional cancellation token.
         * @return  {Kusto.Language.Editor.QuickInfo}
         */
        GetQuickInfo(position: number, options?: Kusto.Language.Editor.QuickInfoOptions | null, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.QuickInfo | null;
        /**
         * Gets the {@link } of the syntax element at or adjacent to the text position.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {number}                                    position             The text position to get the corresponding element of.
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken    Optional cancellation token.
         * @return  {Kusto.Language.Editor.TextRange}
         */
        GetElement(position: number, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.TextRange;
        /**
         * Gets a list of all the syntax elements related to the syntax element at or adjacent to the text position.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {number}                                      position             The text position of the corresponding element to get the related elements of.
         * @param   {Kusto.Language.Editor.FindRelatedOptions}    options              Optional options
         * @param   {Kusto.Language.Utils.CancellationToken}      cancellationToken    Optional cancellation token.
         * @return  {Kusto.Language.Editor.RelatedInfo}
         */
        GetRelatedElements(position: number, options?: Kusto.Language.Editor.FindRelatedOptions, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.RelatedInfo | null;
        /**
         * Gets a list of all the explicit cluster references in the text.
         These are clusters specified in calls to the cluster() function.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {Kusto.Language.Utils.CancellationToken}        cancellationToken    Optional cancellation token.
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetClusterReferences(cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClusterReference> | null;
        /**
         * Gets a list of all the explicit database references in the text.
         These are databases specified in calls to the database() function.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {Kusto.Language.Utils.CancellationToken}        cancellationToken    Optional cancellation token.
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetDatabaseReferences(cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.DatabaseReference> | null;
        /**
         * Gets the text with all whitespace/trivia minimized.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {Kusto.Language.Editor.MinimalTextKind}     kind                 The kind of minimal text to produce.
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken    Optional cancellation token.
         * @return  {string}
         */
        GetMinimalText(kind: Kusto.Language.Editor.MinimalTextKind, cancellationToken?: Kusto.Language.Utils.CancellationToken): string | null;
        /**
         * Gets the text with all the whitespace/trivia formatted using the specified options.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @param   {Kusto.Language.Editor.FormattingOptions}    options              Optional options.
         * @param   {number}                                     caretPosition        The text position of the caret before formatting.
         * @param   {Kusto.Language.Utils.CancellationToken}     cancellationToken    Optional cancellation token.
         * @return  {Kusto.Language.Editor.FormattedText}
         */
        GetFormattedText(options?: Kusto.Language.Editor.FormattingOptions | null, caretPosition?: number, cancellationToken?: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.FormattedText | null;
        /**
         * Gets the client parameter references embedded in the text.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.CodeService
         * @memberof Kusto.Language.Editor.CodeService
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetClientParameters(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClientParameter> | null;
    }
    interface CodeServiceFunc extends Function {
        prototype: CodeService;
        new (): CodeService;
    }
    var CodeService: CodeServiceFunc;

    interface AnalyzerUtilities {
    }
    interface AnalyzerUtilitiesFunc extends Function {
        prototype: AnalyzerUtilities;
        new (): AnalyzerUtilities;
        /**
         * Returns true if the expr refers to a database column.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {Kusto.Language.Syntax.Expression}    expr       
         * @param   {Kusto.Language.GlobalState}          globals
         * @return  {boolean}
         */
        IsDbColumn(expr: Kusto.Language.Syntax.Expression | null, globals: Kusto.Language.GlobalState | null): boolean;
        /**
         * Returns true if the operator expression has at least one operand that 
         refers to a database column.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {Kusto.Language.Syntax.Expression}    expr       
         * @param   {Kusto.Language.GlobalState}          globals
         * @return  {boolean}
         */
        HasDbColumnOperand(expr: Kusto.Language.Syntax.Expression | null, globals: Kusto.Language.GlobalState | null): boolean;
        /**
         * Returns true if the expression is a short string constant
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {Kusto.Language.Syntax.Expression}    expr              
         * @param   {Kusto.Language.GlobalState}          globals           
         * @param   {number}                              lengthNotShort
         * @return  {boolean}
         */
        IsShortStringConstant(expr: Kusto.Language.Syntax.Expression | null, globals: Kusto.Language.GlobalState | null, lengthNotShort?: number): boolean;
        /**
         * Returns true if the operator expression has an operand that matches.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {Kusto.Language.Syntax.Expression}    expr                        
         * @param   {System.Func}                         fnMatches                   
         * @param   {boolean}                             includeListOperandValues
         * @return  {boolean}
         */
        HasMatchingOperand(expr: Kusto.Language.Syntax.Expression | null, fnMatches: {(arg: Kusto.Language.Syntax.Expression): boolean} | null, includeListOperandValues?: boolean): boolean;
        /**
         * Returns true if the list has an element that matches.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {Kusto.Language.Syntax.SyntaxList$1}    list         
         * @param   {System.Func}                           fnMatches
         * @return  {boolean}
         */
        HasAnyMatchingElement(list: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null, fnMatches: {(arg: Kusto.Language.Syntax.Expression): boolean} | null): boolean;
        /**
         * Returns the first matching operand (lexical order) or null if there are no matches.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {Kusto.Language.Syntax.Expression}    expr                        
         * @param   {System.Func}                         fnMatches                   
         * @param   {boolean}                             includeListOperandValues
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetFirstMatchingOperand(expr: Kusto.Language.Syntax.Expression | null, fnMatches: {(arg: Kusto.Language.Syntax.Expression): boolean} | null, includeListOperandValues?: boolean): Kusto.Language.Syntax.Expression | null;
        /**
         * Returns the first matching element or null if there are no matches.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {Kusto.Language.Syntax.SyntaxList$1}    list         
         * @param   {System.Func}                           fnMatches
         * @return  {Kusto.Language.Syntax.Expression}
         */
        /**
         * Adds edits to change name to new name.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {System.Collections.Generic.List$1}    edits      
         * @param   {Kusto.Language.Syntax.Name}           name       
         * @param   {string}                               newName
         * @return  {System.Collections.Generic.List$1}
         */
        AddRenameEdits(edits: System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null, name: Kusto.Language.Syntax.Name | null, newName: string | null): System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null;
        /**
         * Adds edits to remove an argument
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {System.Collections.Generic.List$1}    edits       
         * @param   {Kusto.Language.Syntax.Expression}     argument
         * @return  {System.Collections.Generic.List$1}
         */
        AddRemoveArgumentEdits(edits: System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null, argument: Kusto.Language.Syntax.Expression | null): System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null;
        /**
         * Adds edits to remove an argument
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {System.Collections.Generic.List$1}               edits            
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    functionCall     
         * @param   {number}                                          argumentIndex
         * @return  {System.Collections.Generic.List$1}
         */
        AddRemoveArgumentEdits$1(edits: System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null, functionCall: Kusto.Language.Syntax.FunctionCallExpression | null, argumentIndex: number): System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null;
        /**
         * Adds edits to insert an argument at a specified position
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {System.Collections.Generic.List$1}               edits              
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    functionCall       
         * @param   {number}                                          argumentIndex      
         * @param   {string}                                          newArgumentText
         * @return  {System.Collections.Generic.List$1}
         */
        AddInsertArgumentEdits(edits: System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null, functionCall: Kusto.Language.Syntax.FunctionCallExpression | null, argumentIndex: number, newArgumentText: string | null): System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null;
        /**
         * Adds edits to insert an argument at a specified position
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {System.Collections.Generic.List$1}               edits              
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    functionCall       
         * @param   {string}                                          newArgumentText
         * @return  {System.Collections.Generic.List$1}
         */
        AddAddArgumentEdits(edits: System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null, functionCall: Kusto.Language.Syntax.FunctionCallExpression | null, newArgumentText: string | null): System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null;
        /**
         * Returns the function call that specifies this argument.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {Kusto.Language.Syntax.Expression}                argument
         * @return  {Kusto.Language.Syntax.FunctionCallExpression}
         */
        GetFunctionCall(argument: Kusto.Language.Syntax.Expression | null): Kusto.Language.Syntax.FunctionCallExpression | null;
        /**
         * Adds edits to remove outer function call from argument.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.AnalyzerUtilities
         * @memberof Kusto.Language.Editor.AnalyzerUtilities
         * @param   {System.Collections.Generic.List$1}               edits       
         * @param   {Kusto.Language.Syntax.FunctionCallExpression}    outer       
         * @param   {Kusto.Language.Syntax.Expression}                argument
         * @return  {System.Collections.Generic.List$1}
         */
        AddRemoveOuterFunctionCallEdits(edits: System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null, outer: Kusto.Language.Syntax.FunctionCallExpression | null, argument: Kusto.Language.Syntax.Expression | null): System.Collections.Generic.List$1<Kusto.Language.Editor.TextEdit> | null;
    }
    var AnalyzerUtilities: AnalyzerUtilitiesFunc;

    interface CodeAction {
        /**
         * The kind of {@link } used to common kinds of actions
         so they may be grouped together into a fix-all action.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CodeAction
         * @function Kind
         * @type string
         */
        Kind: string | null;
        /**
         * The the text of the action displayed in the menu
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CodeAction
         * @function Title
         * @type string
         */
        Title: string | null;
        /**
         * The longer description displayed in the hover tip.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CodeAction
         * @function Description
         * @type string
         */
        Description: string | null;
        WithTitle(title: string | null): Kusto.Language.Editor.CodeAction | null;
        WithDescription(description: string | null): Kusto.Language.Editor.CodeAction | null;
    }
    interface CodeActionFunc extends Function {
        prototype: CodeAction;
        FixAllKind: string | null;
        MenuKind: string | null;
        Create$1(kind: string | null, title: string | null, description: string | null, data?: System.Collections.Generic.IReadOnlyList$1<string> | null): Kusto.Language.Editor.ApplyAction | null;
        Create(title: string | null, description: string | null, data?: System.Collections.Generic.IReadOnlyList$1<string> | null): Kusto.Language.Editor.ApplyAction | null;
        CreateFixAll(title: string | null, description: string | null, actions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ApplyAction> | null): Kusto.Language.Editor.ApplyAction | null;
        CreateMenu(title: string | null, description: string | null, actions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CodeAction> | null): Kusto.Language.Editor.MenuAction | null;
    }
    var CodeAction: CodeActionFunc;

    /**
     * A {@link } implements additional semantic analysis beyond that done by {@link }.
     Analyzers are invoked via {@link }.
     The analyzer may also provide fix actions for the diagnostics they report.
     *
     * @abstract
     * @class Kusto.Language.Editor.KustoAnalyzer
     */
    interface KustoAnalyzer {
        /**
         * The name of this analyzer.
         This is used to find the analyzer that created the {@link } when the action is being applied.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.KustoAnalyzer
         * @function Name
         * @type string
         */
        Name: string | null;
        /**
         * The diagnostics produced by this analyzer.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.KustoAnalyzer
         * @function Diagnostics
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * The {@link } associated with this {@link }
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.KustoAnalyzer
         * @function Fixer
         * @type Kusto.Language.Editor.KustoFixer
         */
        Fixer: Kusto.Language.Editor.KustoFixer | null;
        /**
         * Creates a {@link } for this {@link }
         *
         * @instance
         * @protected
         * @this Kusto.Language.Editor.KustoAnalyzer
         * @memberof Kusto.Language.Editor.KustoAnalyzer
         * @return  {Kusto.Language.Editor.KustoFixer}
         */
        /**
         * Gets the fix actions for the diagnostic
         *
         * @instance
         * @protected
         * @this Kusto.Language.Editor.KustoAnalyzer
         * @memberof Kusto.Language.Editor.KustoAnalyzer
         * @param   {Kusto.Language.KustoCode}                   code                 
         * @param   {Kusto.Language.Diagnostic}                  dx                   
         * @param   {Kusto.Language.Editor.CodeActionOptions}    options              
         * @param   {System.Collections.Generic.List$1}          actions              
         * @param   {Kusto.Language.Utils.CancellationToken}     cancellationToken
         * @return  {void}
         */
        /**
         * Gets the {@link } for the {@link }.
         *
         * @instance
         * @protected
         * @this Kusto.Language.Editor.KustoAnalyzer
         * @memberof Kusto.Language.Editor.KustoAnalyzer
         * @param   {Kusto.Language.KustoCode}                   code                 
         * @param   {Kusto.Language.Editor.ApplyAction}          action               
         * @param   {number}                                     caretPosition        
         * @param   {Kusto.Language.Editor.CodeActionOptions}    options              
         * @param   {Kusto.Language.Utils.CancellationToken}     cancellationToken
         * @return  {Kusto.Language.Editor.FixEdits}
         */
        /**
         * Override this method to suppy the example set of diagnostics that the analyzer produces.
         *
         * @instance
         * @abstract
         * @protected
         * @this Kusto.Language.Editor.KustoAnalyzer
         * @memberof Kusto.Language.Editor.KustoAnalyzer
         * @return  {System.Collections.Generic.IEnumerable$1}
         */
        /**
         * Analyzes the {@link } and outputs any diagnostics found into the diagnostics list.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Editor.KustoAnalyzer
         * @memberof Kusto.Language.Editor.KustoAnalyzer
         * @param   {Kusto.Language.KustoCode}                  code                 
         * @param   {System.Collections.Generic.List$1}         diagnostics          
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken
         * @return  {void}
         */
        Analyze(code: Kusto.Language.KustoCode | null, diagnostics: System.Collections.Generic.List$1<Kusto.Language.Diagnostic> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface KustoAnalyzerFunc extends Function {
        prototype: KustoAnalyzer;
        AnalyzerFixer: Kusto.Language.Editor.KustoAnalyzer.AnalyzerFixerFunc;
        new (): KustoAnalyzer;
    }
    var KustoAnalyzer: KustoAnalyzerFunc;
    module KustoAnalyzer {
        /**
         * A {@link } implementation that defers back to the analyzer itself.
         *
         * @private
         * @class Kusto.Language.Editor.KustoAnalyzer.AnalyzerFixer
         * @augments Kusto.Language.Editor.KustoFixer
         */
        interface AnalyzerFixer extends Kusto.Language.Editor.KustoFixer {
            Name: string | null;
        }
        interface AnalyzerFixerFunc extends Function {
            prototype: AnalyzerFixer;
            new (analyzer: Kusto.Language.Editor.KustoAnalyzer | null): AnalyzerFixer;
        }
    }

    /**
     * Bracketting style determines how bracket pairs are aligned when on separate lines.
     *
     * @public
     * @class Kusto.Language.Editor.BrackettingStyle
     */
    enum BrackettingStyle {
        Default = 0,
        None = 1,
        Vertical = 2,
        Diagonal = 3
    }

    /**
     * An action taken by the client to apply the result of a code action.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Editor.ResultAction
     */
    interface ResultAction {
    }
    interface ResultActionFunc extends Function {
        prototype: ResultAction;
        new (): ResultAction;
    }
    var ResultAction: ResultActionFunc;

    interface ClassificationInfo {
        Classifications: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClassifiedRange> | null;
    }
    interface ClassificationInfoFunc extends Function {
        prototype: ClassificationInfo;
        new (classifications: System.Collections.Generic.IEnumerable$1<Kusto.Language.Editor.ClassifiedRange> | null): ClassificationInfo;
        Empty: Kusto.Language.Editor.ClassificationInfo | null;
    }
    var ClassificationInfo: ClassificationInfoFunc;

    enum ClassificationKind {
        PlainText = 0,
        Comment = 1,
        Punctuation = 2,
        Directive = 3,
        Literal = 4,
        StringLiteral = 5,
        Type = 6,
        Column = 7,
        Table = 8,
        Database = 9,
        Function = 10,
        Parameter = 11,
        Variable = 12,
        Identifier = 13,
        ClientParameter = 14,
        QueryParameter = 15,
        ScalarOperator = 16,
        MathOperator = 17,
        QueryOperator = 18,
        Command = 19,
        Keyword = 20,
        MaterializedView = 21,
        SchemaMember = 22,
        SignatureParameter = 23,
        Option = 24
    }

    /**
     * A {@link } and text range.
     *
     * @public
     * @class Kusto.Language.Editor.ClassifiedRange
     */
    interface ClassifiedRange {
        /**
         * The classification.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClassifiedRange
         * @function Kind
         * @type Kusto.Language.Editor.ClassificationKind
         */
        Kind: Kusto.Language.Editor.ClassificationKind;
        /**
         * The starting text position of the classified range.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClassifiedRange
         * @function Start
         * @type number
         */
        Start: number;
        /**
         * The length (in characters) of the classified range.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClassifiedRange
         * @function Length
         * @type number
         */
        Length: number;
        /**
         * The end of the classification range.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.ClassifiedRange
         * @function End
         * @type number
         */
        End: number;
    }
    interface ClassifiedRangeFunc extends Function {
        prototype: ClassifiedRange;
        new (kind: Kusto.Language.Editor.ClassificationKind, start: number, length: number): ClassifiedRange;
    }
    var ClassifiedRange: ClassifiedRangeFunc;

    interface ClassifiedText {
        /**
         * The {@link } of the text.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClassifiedText
         * @function Kind
         * @type Kusto.Language.Editor.ClassificationKind
         */
        Kind: Kusto.Language.Editor.ClassificationKind;
        /**
         * The text itself.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClassifiedText
         * @function Text
         * @type string
         */
        Text: string | null;
    }
    interface ClassifiedTextFunc extends Function {
        prototype: ClassifiedText;
        $ctor1: {
            new (text: string | null): ClassifiedText
        };
        ctor: {
            new (kind: Kusto.Language.Editor.ClassificationKind, text: string | null): ClassifiedText
        };
    }
    var ClassifiedText: ClassifiedTextFunc;

    /**
     * A directive to be processed by the client before executing the query.
     *
     * @public
     * @class Kusto.Language.Editor.ClientDirective
     */
    interface ClientDirective {
        /**
         * The full text of the directive.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirective
         * @function Text
         * @type Kusto.Language.Editor.EditString
         */
        Text: Kusto.Language.Editor.EditString | null;
        /**
         * The name of the directive
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirective
         * @function Name
         * @type string
         */
        Name: string | null;
        /**
         * All text after the name
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirective
         * @function AfterNameText
         * @type Kusto.Language.Editor.EditString
         */
        AfterNameText: Kusto.Language.Editor.EditString | null;
        /**
         * The rest of the text on the directive line after the name
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirective
         * @function ArgumentsText
         * @type Kusto.Language.Editor.EditString
         */
        ArgumentsText: Kusto.Language.Editor.EditString | null;
        /**
         * The parsed arguments as a list of zero or more optionally-named values.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirective
         * @function Arguments
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClientDirectiveArgument> | null;
        /**
         * Any text following the directive line that may contain a command, query or another directive
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirective
         * @function AfterDirectiveText
         * @type Kusto.Language.Editor.EditString
         */
        AfterDirectiveText: Kusto.Language.Editor.EditString | null;
    }
    interface ClientDirectiveFunc extends Function {
        prototype: ClientDirective;
        new (text: Kusto.Language.Editor.EditString | null, name: string | null, afterNameText: Kusto.Language.Editor.EditString | null, argumentsText: Kusto.Language.Editor.EditString | null, $arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClientDirectiveArgument> | null, afterArgumentsText: Kusto.Language.Editor.EditString | null): ClientDirective;
        /**
         * Parses a directive from text
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ClientDirective
         * @memberof Kusto.Language.Editor.ClientDirective
         * @param   {Kusto.Language.Editor.EditString}         text         
         * @param   {Kusto.Language.Editor.ClientDirective}    directive
         * @return  {boolean}
         */
        TryParse(text: Kusto.Language.Editor.EditString | null, directive: {v: Kusto.Language.Editor.ClientDirective | null}): boolean;
    }
    var ClientDirective: ClientDirectiveFunc;

    /**
     * A client directive argument info.
     *
     * @public
     * @class Kusto.Language.Editor.ClientDirectiveArgument
     */
    interface ClientDirectiveArgument {
        /**
         * An optional name assigned to the argument: name = value
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirectiveArgument
         * @function Name
         * @type string
         */
        Name: string | null;
        /**
         * The unparsed text of the argument value.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirectiveArgument
         * @function Text
         * @type string
         */
        Text: string | null;
        /**
         * The parsed value of the argument: double, long or string.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirectiveArgument
         * @function Value
         * @type System.Object
         */
        Value: any | null;
    }
    interface ClientDirectiveArgumentFunc extends Function {
        prototype: ClientDirectiveArgument;
        new (name: string | null, text: string | null, value: any | null): ClientDirectiveArgument;
    }
    var ClientDirectiveArgument: ClientDirectiveArgumentFunc;

    /**
     * The breakdown of a command or query text with directives.
     *
     * @public
     * @class Kusto.Language.Editor.ClientDirectiveInfo
     */
    interface ClientDirectiveInfo {
        /**
         * The original text of the entire block.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirectiveInfo
         * @function Text
         * @type Kusto.Language.Editor.EditString
         */
        Text: Kusto.Language.Editor.EditString | null;
        /**
         * The directives preceding the query or command
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirectiveInfo
         * @function Directives
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Directives: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClientDirective> | null;
        /**
         * The remaining text after the last directive containing the command or query, if any.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.ClientDirectiveInfo
         * @function RemainingText
         * @type Kusto.Language.Editor.EditString
         */
        RemainingText: Kusto.Language.Editor.EditString | null;
    }
    interface ClientDirectiveInfoFunc extends Function {
        prototype: ClientDirectiveInfo;
        new (text: Kusto.Language.Editor.EditString | null, directives: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClientDirective> | null, remainingText: Kusto.Language.Editor.EditString | null): ClientDirectiveInfo;
        /**
         * Parses a {@link } from a command or query text that may contain directives.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.ClientDirectiveInfo
         * @memberof Kusto.Language.Editor.ClientDirectiveInfo
         * @param   {Kusto.Language.Editor.EditString}             text
         * @return  {Kusto.Language.Editor.ClientDirectiveInfo}
         */
        Parse(text: Kusto.Language.Editor.EditString | null): Kusto.Language.Editor.ClientDirectiveInfo | null;
    }
    var ClientDirectiveInfo: ClientDirectiveInfoFunc;

    /**
     * The location of a piece of syntax in the text of the code.
     *
     * @public
     * @class Kusto.Language.Editor.SyntaxReference
     */
    interface SyntaxReference {
        /**
         * The text range of the {@link }
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.SyntaxReference
         * @function Range
         * @type Kusto.Language.Editor.TextRange
         */
        Range: Kusto.Language.Editor.TextRange;
        /**
         * The starting text position of the {@link }
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.SyntaxReference
         * @function Start
         * @type number
         */
        Start: number;
        /**
         * The text length of the {@link }
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.SyntaxReference
         * @function Length
         * @type number
         */
        Length: number;
        /**
         * The position after the end of the {@link }
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.SyntaxReference
         * @function End
         * @type number
         */
        End: number;
    }
    interface SyntaxReferenceFunc extends Function {
        prototype: SyntaxReference;
        ctor: {
            new (range: Kusto.Language.Editor.TextRange): SyntaxReference
        };
        $ctor1: {
            new (start: number, length: number): SyntaxReference
        };
    }
    var SyntaxReference: SyntaxReferenceFunc;

    interface CodeActionInfo {
        Actions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CodeAction> | null;
    }
    interface CodeActionInfoFunc extends Function {
        prototype: CodeActionInfo;
        NoActions: Kusto.Language.Editor.CodeActionInfo | null;
    }
    var CodeActionInfo: CodeActionInfoFunc;

    interface CodeActionOptions {
        DiagnosticFilter: Kusto.Language.Editor.DisabledDiagnostics | null;
        FormattingOptions: Kusto.Language.Editor.FormattingOptions | null;
        WithFormattingOptions(options: Kusto.Language.Editor.FormattingOptions | null): Kusto.Language.Editor.CodeActionOptions | null;
        WithDiagnosticFilter(filter: Kusto.Language.Editor.DisabledDiagnostics | null): Kusto.Language.Editor.CodeActionOptions | null;
    }
    interface CodeActionOptionsFunc extends Function {
        prototype: CodeActionOptions;
        Default: Kusto.Language.Editor.CodeActionOptions | null;
    }
    var CodeActionOptions: CodeActionOptionsFunc;

    /**
     * The resulting effects of applying a {@link }.
     These result actions must be
     *
     * @public
     * @class Kusto.Language.Editor.CodeActionResult
     */
    interface CodeActionResult {
        /**
         * The list of {@link } that to be applied in order.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CodeActionResult
         * @function Actions
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Actions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ResultAction> | null;
        /**
         * The reason the application of the {@link } failed (or null).
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CodeActionResult
         * @function FailureReason
         * @type string
         */
        FailureReason: string | null;
        WithAction(action: Kusto.Language.Editor.ResultAction | null): Kusto.Language.Editor.CodeActionResult | null;
        WithAdjustedPosition(delta: number): Kusto.Language.Editor.CodeActionResult | null;
    }
    interface CodeActionResultFunc extends Function {
        prototype: CodeActionResult;
        $ctor1: {
            new (actions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ResultAction> | null): CodeActionResult
        };
        ctor: {
            new (actions: Kusto.Language.Editor.ResultAction[] | null): CodeActionResult
        };
        /**
         * A {@link } with no actions.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CodeActionResult
         * @type Kusto.Language.Editor.CodeActionResult
         */
        Nothing: Kusto.Language.Editor.CodeActionResult | null;
        Change$1(changes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null, changedText: string | null): Kusto.Language.Editor.CodeActionResult | null;
        Change(changedText: Kusto.Language.Editor.EditString | null): Kusto.Language.Editor.CodeActionResult | null;
        ChangeAndMove$1(changes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextEdit> | null, changedText: string | null, newCaretPosition: number): Kusto.Language.Editor.CodeActionResult | null;
        ChangeAndMove(changedText: Kusto.Language.Editor.EditString | null, newCaretPosition: number): Kusto.Language.Editor.CodeActionResult | null;
        Failure(failureReason?: string | null): Kusto.Language.Editor.CodeActionResult | null;
    }
    var CodeActionResult: CodeActionResultFunc;

    /**
     * A class that details the range of text of a unique block of code in a {@link } and its associated {@link }.
     *
     * @public
     * @class Kusto.Language.Editor.CodeBlock
     */
    interface CodeBlock {
        /**
         * The text of the {@link }
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CodeBlock
         * @function Text
         * @type string
         */
        Text: string | null;
        /**
         * The start of the {@link } within the {@link }.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CodeBlock
         * @function Start
         * @type number
         */
        Start: number;
        /**
         * The length of the {@link } within the {@link }.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CodeBlock
         * @function Length
         * @type number
         */
        Length: number;
        /**
         * The end of the {@link } within the {@link }.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CodeBlock
         * @function End
         * @type number
         */
        End: number;
        /**
         * The kind of code in the {@link }.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CodeBlock
         * @function Kind
         * @type string
         */
        Kind: string | null;
        /**
         * The {@link } associated with this {@link }.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CodeBlock
         * @function Service
         * @type Kusto.Language.Editor.CodeService
         */
        Service: Kusto.Language.Editor.CodeService | null;
        /**
         * Creates a new {@link } with a modified starting position.
         *
         * @instance
         * @this Kusto.Language.Editor.CodeBlock
         * @memberof Kusto.Language.Editor.CodeBlock
         * @param   {number}                             start
         * @return  {Kusto.Language.Editor.CodeBlock}
         */
    }
    interface CodeBlockFunc extends Function {
        prototype: CodeBlock;
    }
    var CodeBlock: CodeBlockFunc;

    /**
     * Known code kinds.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Editor.CodeKinds
     */
    interface CodeKinds {
    }
    interface CodeKindsFunc extends Function {
        prototype: CodeKinds;
        new (): CodeKinds;
        /**
         * The code is a Kusto Query.
         *
         * @static
         * @public
         * @memberof Kusto.Language.Editor.CodeKinds
         * @constant
         * @default "Query"
         * @type string
         */
        Query: string | null;
        /**
         * The code is a Kusto Commmand.
         *
         * @static
         * @public
         * @memberof Kusto.Language.Editor.CodeKinds
         * @constant
         * @default "Command"
         * @type string
         */
        Command: string | null;
        /**
         * The code is a Kusto Directive
         *
         * @static
         * @public
         * @memberof Kusto.Language.Editor.CodeKinds
         * @constant
         * @default "Directive"
         * @type string
         */
        Directive: string | null;
        /**
         * The code kind is not known.
         *
         * @static
         * @public
         * @memberof Kusto.Language.Editor.CodeKinds
         * @constant
         * @default "Unknown"
         * @type string
         */
        Unknown: string | null;
    }
    var CodeKinds: CodeKindsFunc;

    /**
     * A script that contains a sequence of independent {@link }s,
     each with its own {@link } for intellisense and editor related features.
     *
     * @public
     * @class Kusto.Language.Editor.CodeScript
     */
    interface CodeScript {
        /**
         * The text that contains the sequence of {@link }s.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CodeScript
         * @function Text
         * @type string
         */
        Text: string | null;
        /**
         * The factory used to construct a {@link } for each block.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CodeScript
         * @function Factory
         * @type Kusto.Language.Editor.CodeServiceFactory
         */
        Factory: Kusto.Language.Editor.CodeServiceFactory | null;
        /**
         * An optional function that splits the document text into separate blocks.
         If not specified, the blocks are separated by blank lines.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.CodeScript
         * @function Separator
         * @type Kusto.Language.Editor.BlockSeparator
         */
        Separator: {(text: string, lineStarts: System.Collections.Generic.IReadOnlyList$1<number>): System.Collections.Generic.IReadOnlyList$1<number>} | null;
        /**
         * The collection of individual {@link }s.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CodeScript
         * @function Blocks
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Blocks: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CodeBlock> | null;
        /**
         * The starting positions for all lines in the document.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CodeScript
         * @function LineStarts
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        LineStarts: System.Collections.Generic.IReadOnlyList$1<number> | null;
        /**
         * The {@link } used by Kusto {@link }s.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.CodeScript
         * @function Globals
         * @type Kusto.Language.GlobalState
         */
        Globals: Kusto.Language.GlobalState | null;
        /**
         * Creates a new {@link } with the text changed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeScript
         * @memberof Kusto.Language.Editor.CodeScript
         * @param   {string}                              newText
         * @return  {Kusto.Language.Editor.CodeScript}
         */
        WithText(newText: string | null): Kusto.Language.Editor.CodeScript | null;
        /**
         * Creates a new {@link } with the {@link } changed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeScript
         * @memberof Kusto.Language.Editor.CodeScript
         * @param   {Kusto.Language.Editor.CodeServiceFactory}    factory
         * @return  {Kusto.Language.Editor.CodeScript}
         */
        WithFactory(factory: Kusto.Language.Editor.CodeServiceFactory | null): Kusto.Language.Editor.CodeScript | null;
        /**
         * Creates a new {@link } with the optional block separator changed.
         This function produces a list of text positions that start new blocks.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeScript
         * @memberof Kusto.Language.Editor.CodeScript
         * @param   {Kusto.Language.Editor.BlockSeparator}    separator
         * @return  {Kusto.Language.Editor.CodeScript}
         */
        WithSeparator(separator: {(text: string, lineStarts: System.Collections.Generic.IReadOnlyList$1<number>): System.Collections.Generic.IReadOnlyList$1<number>} | null): Kusto.Language.Editor.CodeScript | null;
        /**
         * Creates a new {@link } with the text and globals changed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeScript
         * @memberof Kusto.Language.Editor.CodeScript
         * @param   {string}                                      newText    
         * @param   {Kusto.Language.Editor.CodeServiceFactory}    factory
         * @return  {Kusto.Language.Editor.CodeScript}
         */
        WithTextAndFactory(newText: string | null, factory: Kusto.Language.Editor.CodeServiceFactory | null): Kusto.Language.Editor.CodeScript | null;
        /**
         * Creates a new {@link } with the kusto globals changed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeScript
         * @memberof Kusto.Language.Editor.CodeScript
         * @param   {Kusto.Language.GlobalState}          newGlobals
         * @return  {Kusto.Language.Editor.CodeScript}
         */
        WithGlobals(newGlobals: Kusto.Language.GlobalState | null): Kusto.Language.Editor.CodeScript | null;
        /**
         * Gets the block corresponding to the text position.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeScript
         * @memberof Kusto.Language.Editor.CodeScript
         * @param   {number}                             position
         * @return  {Kusto.Language.Editor.CodeBlock}
         */
        GetBlockAtPosition(position: number): Kusto.Language.Editor.CodeBlock | null;
        /**
         * Gets the text position for the line number and character offset.
         Returns true if the position is determined, or false if the line/character is outside the text.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeScript
         * @memberof Kusto.Language.Editor.CodeScript
         * @param   {number}          line          The line number (1 based)
         * @param   {number}          lineOffset    The offset of the character in the line (1 based)
         * @param   {System.Int32}    position      The position in the text.
         * @return  {boolean}
         */
        TryGetTextPosition(line: number, lineOffset: number, position: {v: number}): boolean;
        /**
         * Gets the 1-based line and lineOffset for a position in the text.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.CodeScript
         * @memberof Kusto.Language.Editor.CodeScript
         * @param   {number}          position      
         * @param   {System.Int32}    line          
         * @param   {System.Int32}    lineOffset
         * @return  {boolean}
         */
        TryGetLineAndOffset(position: number, line: {v: number}, lineOffset: {v: number}): boolean;
    }
    interface CodeScriptFunc extends Function {
        prototype: CodeScript;
        /**
         * Create a new {@link } from the specified text and a {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.CodeScript
         * @memberof Kusto.Language.Editor.CodeScript
         * @param   {string}                                      text       
         * @param   {Kusto.Language.Editor.CodeServiceFactory}    factory
         * @return  {Kusto.Language.Editor.CodeScript}
         */
        From(text: string | null, factory: Kusto.Language.Editor.CodeServiceFactory | null): Kusto.Language.Editor.CodeScript | null;
        /**
         * Create a new {@link } from the specified text and globals.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.CodeScript
         * @memberof Kusto.Language.Editor.CodeScript
         * @param   {string}                              text       
         * @param   {Kusto.Language.GlobalState}          globals
         * @return  {Kusto.Language.Editor.CodeScript}
         */
        From$1(text: string | null, globals?: Kusto.Language.GlobalState | null): Kusto.Language.Editor.CodeScript | null;
        /**
         * Creates a {@link } from the text
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.CodeScript
         * @memberof Kusto.Language.Editor.CodeScript
         * @param   {string}                                      text              
         * @param   {Kusto.Language.Editor.CodeServiceFactory}    factory           
         * @param   {System.Collections.Generic.IEnumerable$1}    existingBlocks    
         * @param   {Kusto.Language.Editor.BlockSeparator}        separator
         * @return  {Kusto.Language.Editor.CodeScript}
         */
    }
    var CodeScript: CodeScriptFunc;

    interface FormattedText {
        /**
         * The formatted text
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattedText
         * @function Text
         * @type string
         */
        Text: string | null;
        /**
         * The new cursor position within the newly formatted text.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattedText
         * @function Position
         * @type number
         */
        Position: number;
    }
    interface FormattedTextFunc extends Function {
        prototype: FormattedText;
        new (newText: string | null, newPosition: number): FormattedText;
    }
    var FormattedText: FormattedTextFunc;

    interface FormattingOptions {
        /**
         * The number of spaces used per indentation level.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function IndentationSize
         * @type number
         */
        IndentationSize: number;
        /**
         * Automatically add any missing tokens.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function InsertMissingTokens
         * @type boolean
         */
        InsertMissingTokens: boolean;
        /**
         * The default bracketting style.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function BrackettingStyle
         * @type Kusto.Language.Editor.BrackettingStyle
         */
        BrackettingStyle: Kusto.Language.Editor.BrackettingStyle;
        /**
         * Schema list bracketting style
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function SchemaStyle
         * @type Kusto.Language.Editor.BrackettingStyle
         */
        SchemaStyle: Kusto.Language.Editor.BrackettingStyle;
        /**
         * Data table values bracket style
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function DataTableValueStyle
         * @type Kusto.Language.Editor.BrackettingStyle
         */
        DataTableValueStyle: Kusto.Language.Editor.BrackettingStyle;
        /**
         * Function body brace style
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function FunctionBodyStyle
         * @type Kusto.Language.Editor.BrackettingStyle
         */
        FunctionBodyStyle: Kusto.Language.Editor.BrackettingStyle;
        /**
         * Function parameter list parentheses style
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function FunctionParameterStyle
         * @type Kusto.Language.Editor.BrackettingStyle
         */
        FunctionParameterStyle: Kusto.Language.Editor.BrackettingStyle;
        /**
         * Function call argument list parentheses style
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function FunctionArgumentStyle
         * @type Kusto.Language.Editor.BrackettingStyle
         */
        FunctionArgumentStyle: Kusto.Language.Editor.BrackettingStyle;
        /**
         * Placement style of pipe operator.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function PipeOperatorStyle
         * @type Kusto.Language.Editor.PlacementStyle
         */
        PipeOperatorStyle: Kusto.Language.Editor.PlacementStyle;
        /**
         * Placement style of expressions in a list.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function ExpressionStyle
         * @type Kusto.Language.Editor.PlacementStyle
         */
        ExpressionStyle: Kusto.Language.Editor.PlacementStyle;
        /**
         * Placement style of statements.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function StatementStyle
         * @type Kusto.Language.Editor.PlacementStyle
         */
        StatementStyle: Kusto.Language.Editor.PlacementStyle;
        /**
         * Placement style of semicolons between statements.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function SemicolonStyle
         * @type Kusto.Language.Editor.PlacementStyle
         */
        SemicolonStyle: Kusto.Language.Editor.PlacementStyle;
        /**
         * The spacing between tokens not otherwise covered by other options.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function GeneralSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        GeneralSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing before and after a prefix unary operator
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function PrefixOperatorSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        PrefixOperatorSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing before and after an infix binary operator
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function InfixOperatorSpacing
         * @type Kusto.Language.Editor.DualSpacingStyle
         */
        InfixOperatorSpacing: Kusto.Language.Editor.DualSpacingStyle;
        /**
         * The spacing before and after a pipe operator.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function PipeOperatorSpacing
         * @type Kusto.Language.Editor.DualSpacingStyle
         */
        PipeOperatorSpacing: Kusto.Language.Editor.DualSpacingStyle;
        /**
         * The spacing before and after a comma
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function CommaSpacing
         * @type Kusto.Language.Editor.DualSpacingStyle
         */
        CommaSpacing: Kusto.Language.Editor.DualSpacingStyle;
        /**
         * The spacing before and after a colon (such as in a column or parameter declaration)
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function ColonSpacing
         * @type Kusto.Language.Editor.DualSpacingStyle
         */
        ColonSpacing: Kusto.Language.Editor.DualSpacingStyle;
        /**
         * The spacing before and after an assignment operator (=)
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function AssignmentSpacing
         * @type Kusto.Language.Editor.DualSpacingStyle
         */
        AssignmentSpacing: Kusto.Language.Editor.DualSpacingStyle;
        /**
         * The spacing before and after the range operator (..)
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function RangeOperatorSpacing
         * @type Kusto.Language.Editor.DualSpacingStyle
         */
        RangeOperatorSpacing: Kusto.Language.Editor.DualSpacingStyle;
        /**
         * The spacing before and after a semicolon
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function SemicolonSpacing
         * @type Kusto.Language.Editor.DualSpacingStyle
         */
        SemicolonSpacing: Kusto.Language.Editor.DualSpacingStyle;
        /**
         * The spacing before and after the expression in a parenthesized expression: (x + 1) vs ( x + 1 )
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function ParenthesizedExpressionSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        ParenthesizedExpressionSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing before and after an argument lists: fn(a, b) vs fn( a, b )
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function ArgumentListSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        ArgumentListSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing inside empty argument lists: fn() vs fn( )
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function EmptyArgumentListSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        EmptyArgumentListSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing before and after a parameter list: (x: int) vs ( x: int )
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function ParameterListSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        ParameterListSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing inside empty parameter lists: () vs ( )
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function EmptyParameterListSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        EmptyParameterListSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing before or after the expressions inside a json array: [0] vs [ 0 ]
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function JsonArraySpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        JsonArraySpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing inside empty json arrays: [] vs [ ]
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function EmptyJsonArraySpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        EmptyJsonArraySpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing inside json objects: {a: 1} vs { a: 1 }
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function JsonObjectSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        JsonObjectSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing inside empty json objects: {} vs { }
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function EmptyJsonObjectSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        EmptyJsonObjectSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing inside data table value brackets: [1, 2] vs [ 1, 2 ]
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function DataTableValueSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        DataTableValueSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing inside empty data table value brackets: [] vs [ ]
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function EmptyDataTableValueSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        EmptyDataTableValueSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing inside function body braces: { x } vs {x}
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function FunctionBodySpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        FunctionBodySpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing inside empty function body braces: { } vs {}
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function EmptyFunctionBodySpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        EmptyFunctionBodySpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing before a function body open brace: () { x } vs (){ x }
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function BeforeFunctionBodySpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        BeforeFunctionBodySpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing before a parameter list open paren: (x: int) vs (x: int)
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function BeforeParameterListSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        BeforeParameterListSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing before an argument list open paren: fn(x) vs fn (x)
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function BeforeArgumentListSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        BeforeArgumentListSpacing: Kusto.Language.Editor.SpacingStyle;
        /**
         * The spacing before a data table value open bracket: datatable [1, 2] vs datatable[1, 2]
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @function BeforeDataTableValueSpacing
         * @type Kusto.Language.Editor.SpacingStyle
         */
        BeforeDataTableValueSpacing: Kusto.Language.Editor.SpacingStyle;
        WithIndentationSize(size: number): Kusto.Language.Editor.FormattingOptions | null;
        WithInsertMissingTokens(enable: boolean): Kusto.Language.Editor.FormattingOptions | null;
        WithBrackettingStyle(style: Kusto.Language.Editor.BrackettingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithSchemaStyle(style: Kusto.Language.Editor.BrackettingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithDataTableValueStyle(style: Kusto.Language.Editor.BrackettingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithFunctionBodyStyle(style: Kusto.Language.Editor.BrackettingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithFunctionParameterStyle(style: Kusto.Language.Editor.BrackettingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithFunctionArgumentStyle(style: Kusto.Language.Editor.BrackettingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithPipeOperatorStyle(style: Kusto.Language.Editor.PlacementStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithExpressionStyle(style: Kusto.Language.Editor.PlacementStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithStatementStyle(style: Kusto.Language.Editor.PlacementStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithSemicolonStyle(style: Kusto.Language.Editor.PlacementStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithGeneralSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithPrefixOperatorSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithInfixOperatorSpacing(style: Kusto.Language.Editor.DualSpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithPipeOperatorSpacing(style: Kusto.Language.Editor.DualSpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithCommaSpacing(style: Kusto.Language.Editor.DualSpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithColonSpacing(style: Kusto.Language.Editor.DualSpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithAssignmentSpacing(style: Kusto.Language.Editor.DualSpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithRangeOperatorSpacing(style: Kusto.Language.Editor.DualSpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithSemicolonSpacing(style: Kusto.Language.Editor.DualSpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithExpressionParenSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithArgumentListSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithEmptyArgumentListSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithParameterListSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithEmptyParameterListSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithJsonArraySpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithEmptyJsonArraySpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithJsonObjectSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithEmptyJsonObjectSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithDataTableValueSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithEmptyDataTableValueSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithFunctionBodySpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithEmptyFunctionBodySpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithBeforeFunctionBodySpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithBeforeParameterListSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithBeforeArgumentListSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
        WithBeforeDataTableValueSpacing(style: Kusto.Language.Editor.SpacingStyle): Kusto.Language.Editor.FormattingOptions | null;
    }
    interface FormattingOptionsFunc extends Function {
        prototype: FormattingOptions;
        /**
         * The default formatting options.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.FormattingOptions
         * @type Kusto.Language.Editor.FormattingOptions
         */
        Default: Kusto.Language.Editor.FormattingOptions | null;
    }
    var FormattingOptions: FormattingOptionsFunc;

    /**
     * A range of text.
     *
     * @public
     * @class Kusto.Language.Editor.TextRange
     */
    interface TextRange {
        /**
         * The starting position of the range in the text.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.TextRange
         * @function Start
         * @type number
         */
        Start: number;
        /**
         * The length of the range in the text.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.TextRange
         * @function Length
         * @type number
         */
        Length: number;
        /**
         * The ending of the range in the text.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.TextRange
         * @function End
         * @type number
         */
        End: number;
        /**
         * True if this text range overlaps the other text range.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.TextRange
         * @memberof Kusto.Language.Editor.TextRange
         * @param   {Kusto.Language.Editor.TextRange}    other
         * @return  {boolean}
         */
        Overlaps(other: Kusto.Language.Editor.TextRange): boolean;
        $clone(to: Kusto.Language.Editor.TextRange): Kusto.Language.Editor.TextRange;
    }
    interface TextRangeFunc extends Function {
        prototype: TextRange;
        $ctor1: {
            new (start: number, length: number): TextRange
        };
        new (): TextRange;
        ctor: {
            new (): TextRange
        };
        Empty: Kusto.Language.Editor.TextRange;
        FromBounds(start: number, end: number): Kusto.Language.Editor.TextRange;
        /**
         * True if the range A overlaps the range B
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.TextRange
         * @memberof Kusto.Language.Editor.TextRange
         * @param   {number}     startA     
         * @param   {number}     lengthA    
         * @param   {number}     startB     
         * @param   {number}     lengthB
         * @return  {boolean}
         */
        Overlaps(startA: number, lengthA: number, startB: number, lengthB: number): boolean;
    }
    var TextRange: TextRangeFunc;

    interface KustoActors {
    }
    interface KustoActorsFunc extends Function {
        prototype: KustoActors;
        new (): KustoActors;
        FunctionInliner: Kusto.Language.Editor.KustoActor | null;
        ExtractExpression: Kusto.Language.Editor.KustoActor | null;
        ConvertToMacroExpand: Kusto.Language.Editor.KustoActor | null;
        Rename: Kusto.Language.Editor.KustoActor | null;
        DiagnosticFixer: Kusto.Language.Editor.KustoActor | null;
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.KustoActor> | null;
    }
    var KustoActors: KustoActorsFunc;

    interface KustoActorNames {
    }
    interface KustoActorNamesFunc extends Function {
        prototype: KustoActorNames;
        new (): KustoActorNames;
        FunctionInliner: string | null;
        ExtractExpression: string | null;
        ConvertToMacroExpand: string | null;
        DiagnosticFixer: string | null;
        Rename: string | null;
    }
    var KustoActorNames: KustoActorNamesFunc;

    interface KustoCompleter {
        GetCompletionItems(position: number): Kusto.Language.Editor.CompletionInfo | null;
        /**
         * Enable retrigger of completion automatically from text before caret after insertion
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Editor.CompletionItem}    item
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        /**
         * Gets the text range that will be replaced by a selected completion item
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {number}          position      
         * @param   {System.Int32}    editStart     
         * @param   {System.Int32}    editLength
         * @return  {void}
         */
        /**
         * Determines if a completion list should be shown automatically during typing.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {number}     position    The text position of the caret.
         * @param   {number}     key         The last key typed.
         * @return  {boolean}
         */
        ShouldAutoComplete(position: number, key: number): boolean;
        /**
         * Determines if completion should be shown at the specified text position.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {number}     position
         * @return  {boolean}
         */
        /**
         * Get's completion items for local variables in scope that are the requested type
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Symbols.SymbolMatch}                        match          
         * @param   {Kusto.Language.Symbols.ScalarSymbol}                       type           
         * @param   {number}                                                    position       
         * @param   {Kusto.Language.Syntax.SyntaxNode}                          contextNode    
         * @param   {Kusto.Language.Editor.KustoCompleter.CompletionBuilder}    builder
         * @return  {void}
         */
        /**
         * Gets the {@link } at the specified text position.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {number}                                  position
         * @return  {Kusto.Language.Editor.CompletionHint}
         */
        /**
         * Gets the {@link } for the specified child slot of the context node
         and any following slots that can offer additional hints.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {number}                                  position       
         * @param   {Kusto.Language.Syntax.SyntaxNode}        contextNode    
         * @param   {number}                                  childIndex     
         * @param   {Kusto.Language.Editor.CompletionHint}    defaultHint
         * @return  {Kusto.Language.Editor.CompletionHint}
         */
        /**
         * True if the position is within the line range of the specified syntax element.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Syntax.SyntaxElement}    element     
         * @param   {number}                                 position
         * @return  {boolean}
         */
        /**
         * Gets the {@link } for the specified child slot of the context node.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Syntax.SyntaxNode}        contextNode    
         * @param   {number}                                  childIndex     
         * @param   {Kusto.Language.Editor.CompletionHint}    default
         * @return  {Kusto.Language.Editor.CompletionHint}
         */
        GetParameterHint(signatures: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Signature> | null, $arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, parameterName: string | null, iArgument: number): Kusto.Language.Editor.CompletionHint;
        /**
         * Find the most suitable node and child slot that contains the text position.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {number}                              position             
         * @param   {Kusto.Language.Syntax.SyntaxNode}    contextNode          
         * @param   {System.Int32}                        contextChildIndex
         * @return  {boolean}
         */
        TryGetCompletionContext(position: number, contextNode: {v: Kusto.Language.Syntax.SyntaxNode | null}, contextChildIndex: {v: number}): boolean;
        /**
         * Gets the annotations on the grammar rules that are invoke for the token at the specified text position.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {number}                                        position
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Gets a list of all annotated parsers that are invoked for the token at the specified text position.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {number}                                        position
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Gets a list of all cursors to annotated parsers that are invoked for the token at the specified text position.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {number}                                        position
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Find a nearby starting point (contextNode) and grammar rule to search with
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {number}                           position       
         * @param   {System.Int32}                     searchStart    
         * @param   {Kusto.Language.Parsing.Parser}    grammar
         * @return  {void}
         */
        /**
         * Returns true if the operator is defined for the left operand type.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Symbols.OperatorKind}     kind              
         * @param   {Kusto.Language.Symbols.TypeSymbol}       arg0Type          
         * @param   {Kusto.Language.Editor.CompletionHint}    returnTypeHint
         * @return  {boolean}
         */
        /**
         * Adds multi-term completion items generated from syntax look ahead.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {number}                                                    position    
         * @param   {Kusto.Language.Editor.KustoCompleter.CompletionBuilder}    builder
         * @return  {void}
         */
        /**
         * Gets the parent sequence of the
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Editor.ParserPath$1}    path
         * @return  {Kusto.Language.Editor.ParserPath$1}
         */
        /**
         * Builds the next step of extended completions given the completion texts aggregates so far
         and the current grammar parser.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Editor.ParserPath$1}                        path       
         * @param   {Kusto.Language.Editor.ParserPath$1}                        ceiling    
         * @param   {System.Collections.Generic.List$1}                         parts      
         * @param   {Kusto.Language.Editor.KustoCompleter.CompletionBuilder}    builder
         * @return  {void}
         */
        /**
         * Returns the next sibling with the associated text
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Editor.ParserPath$1}    path       
         * @param   {Kusto.Language.Editor.ParserPath$1}    ceiling    
         * @param   {string}                                text
         * @return  {Kusto.Language.Editor.ParserPath$1}
         */
        /**
         * Gets the first completion item from this parser one of its descendants.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Parsing.Parser$1}         parser
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        /**
         * Gets {@link } for special parser rules.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Parsing.Parser$1}      parser    
         * @param   {System.Collections.Generic.List$1}    items
         * @return  {boolean}
         */
    }
    interface KustoCompleterFunc extends Function {
        prototype: KustoCompleter;
        CompletionBuilder: Kusto.Language.Editor.KustoCompleter.CompletionBuilderFunc;
        CompletionMode: KustoCompleter.CompletionModeFunc;
        new (code: Kusto.Language.KustoCode | null, options: Kusto.Language.Editor.CompletionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): KustoCompleter;
        /**
         * True if the trivia offset is within a comment
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {string}     trivia          
         * @param   {number}     triviaOffset
         * @return  {boolean}
         */
        IsInsideComment(trivia: string | null, triviaOffset: number): boolean;
        /**
         * True if the node only contains one descendant {@link }
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Syntax.SyntaxNode}    node
         * @return  {boolean}
         */
        /**
         * Gets the instance expression of a function call given a function call or one of its arguments.
         This is the expression on the left-side of a path expression dot with the function call on the right.
         Returns null if the function call is not a selector (right-side) of a path expression.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Syntax.SyntaxNode}    functionCallOrArgument
         * @return  {Kusto.Language.Syntax.SyntaxNode}
         */
        /**
         * True if the node is line constrained (it must exist in a single line).
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Syntax.SyntaxElement}    element
         * @return  {boolean}
         */
        /**
         * Gets the ancestor element that has a line constraint.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Syntax.SyntaxElement}    element        
         * @param   {Kusto.Language.Syntax.SyntaxNode}       constrained
         * @return  {boolean}
         */
        /**
         * Gets the index of a child node within the parent context corresponding to the text position.
         If the position is between nodes (in trivia/whitespace) it chooses the best index between existing nodes, that currently has no child node.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Syntax.SyntaxNode}    node        
         * @param   {number}                              position
         * @return  {number}
         */
        /**
         * determines if the node has an empty child appropriate for the position.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Syntax.SyntaxElement}    element     
         * @param   {number}                                 position
         * @return  {boolean}
         */
        /**
         * Gets the {@link } annotated on this parser or null.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Parsing.Parser$1}         parser
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        /**
         * Creates a {@link } from a list of {@link }
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {System.Collections.Generic.IReadOnlyList$1}    items
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        /**
         * Combines texts together with spacing if necessary.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {System.Collections.Generic.IReadOnlyList$1}    texts
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Gets the next parser path in lexical sequence.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Editor.ParserPath$1}    path       
         * @param   {Kusto.Language.Editor.ParserPath$1}    ceiling
         * @return  {Kusto.Language.Editor.ParserPath$1}
         */
        /**
         * Finds the first ancestor path that has a sequence parser.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Editor.ParserPath$1}    path               
         * @param   {Kusto.Language.Editor.ParserPath$1}    ceiling            
         * @param   {Kusto.Language.Editor.ParserPath}      ancestor           
         * @param   {System.Int32}                          indexInAncestor
         * @return  {boolean}
         */
        /**
         * Finds the first ancestor path that has a conditional parser.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Editor.ParserPath$1}    path               
         * @param   {Kusto.Language.Editor.ParserPath$1}    ceiling            
         * @param   {Kusto.Language.Editor.ParserPath}      ancestor           
         * @param   {System.Int32}                          indexInAncestor
         * @return  {boolean}
         */
        /**
         * Finds the first ancestor path that matches.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoCompleter
         * @memberof Kusto.Language.Editor.KustoCompleter
         * @param   {Kusto.Language.Editor.ParserPath$1}    path               The path to find the ancestor path for.
         * @param   {Kusto.Language.Editor.ParserPath$1}    ceiling            The top-most path that we don't search beyond.
         * @param   {System.Func}                           fnMatch            A function to match the path.
         * @param   {Kusto.Language.Editor.ParserPath}      ancestor           The first matching ancestor path
         * @param   {System.Int32}                          indexInAncestor    The index in the ancestor that corresponds to the starting path.
         * @return  {boolean}
         */
    }
    var KustoCompleter: KustoCompleterFunc;
    module KustoCompleter {
        interface CompletionBuilder {
            Count: number;
            Items: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.CompletionItem> | null;
            Add(item: Kusto.Language.Editor.CompletionItem | null): void;
            AddRange(items: System.Collections.Generic.IEnumerable$1<Kusto.Language.Editor.CompletionItem> | null): void;
        }
        interface CompletionBuilderFunc extends Function {
            prototype: CompletionBuilder;
            new (): CompletionBuilder;
        }

        interface CompletionMode {
        }
        interface CompletionModeFunc extends Function {
            prototype: CompletionMode;
            /**
             * The completions should be shown alone
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 0
             * @type number
             */
            Isolated: number;
            /**
             * The completions should be shown with other completions
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 1
             * @type number
             */
            Combined: number;
        }
    }

    interface KustoClassifier {
    }
    interface KustoClassifierFunc extends Function {
        prototype: KustoClassifier;
        new (): KustoClassifier;
        GetClassifications(root: Kusto.Language.Syntax.SyntaxNode | null, start: number, length: number, clipToRange: boolean, list: System.Collections.Generic.List$1<Kusto.Language.Editor.ClassifiedRange> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
        /**
         * Determines if an identifier token is being used as a keyword (not a name)
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoClassifier
         * @memberof Kusto.Language.Editor.KustoClassifier
         * @param   {Kusto.Language.Syntax.SyntaxToken}    token
         * @return  {boolean}
         */
    }
    var KustoClassifier: KustoClassifierFunc;

    /**
     * The known Kusto code fixers
     *
     * @static
     * @abstract
     * @class Kusto.Language.Editor.KustoFixers
     */
    interface KustoFixers {
    }
    interface KustoFixersFunc extends Function {
        prototype: KustoFixers;
        new (): KustoFixers;
        /**
         * The set of all known Kusto code fixers
         *
         * @static
         * @public
         * @memberof Kusto.Language.Editor.KustoFixers
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.KustoFixer> | null;
    }
    var KustoFixers: KustoFixersFunc;

    /**
     * Rewrites whitespace to conform to formatting options.
     *
     * @class Kusto.Language.Editor.KustoFormatter
     */
    interface KustoFormatter {
        /**
         * Writes the node tree as formatted text
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxNode}    node           
         * @param   {number}                              indentation
         * @return  {void}
         */
        /**
         * Writes the token as formatted text
         Returns the line offset of the start of the token text as it was written.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxToken}    token          
         * @param   {number}                               indentation    
         * @param   {number}                               spacingKind
         * @return  {number}
         */
        /**
         * Writes the *new* trivia before the start of the token
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxToken}    token                
         * @param   {number}                               indentation          
         * @param   {number}                               spacingKind          
         * @param   {boolean}                              hasFollowingToken
         * @return  {void}
         */
        /**
         * Returns true if the language grammar requires spacing between the two tokens 
         in order to reparse as separate tokens.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxToken}    left     
         * @param   {Kusto.Language.Syntax.SyntaxToken}    right
         * @return  {boolean}
         */
        /**
         * Identify formatting rules for all nodes and tokens.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxNode}    node
         * @return  {void}
         */
        /**
         * Add spacing and alignment rules for individual tokens
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxToken}    token
         * @return  {void}
         */
        /**
         * Add spacing and alignment rules specific to types of nodes
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxNode}    node
         * @return  {void}
         */
        /**
         * Create and indentation (alignment) rule.
         If the relativeTo item is specified, the resulting alignment will be relative to this items alignment.
         If the relaetiveTo item is not specified, the resulting alignment will be relative to the current alignment.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxElement}                   relativeTo
         * @return  {Kusto.Language.Editor.KustoFormatter.AlignmentRule}
         */
        /**
         * Add a spacing rule for the first token of the specified node.
         If a spacing rule already exists, this one takes precidence.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxNode}                    node    
         * @param   {Kusto.Language.Editor.KustoFormatter.SpacingRule}    rule
         * @return  {void}
         */
        /**
         * Add a spacing rule for the specified token.
         If a spacing rule already exists, this one takes precidence.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxToken}                   token    
         * @param   {Kusto.Language.Editor.KustoFormatter.SpacingRule}    rule
         * @return  {void}
         */
        /**
         * Returns true if the tokens are currently or will end up on different lines.
         Returns null if the outcome is unknown due to cyclic dependencies between formatting rules.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxToken}    first        
         * @param   {Kusto.Language.Syntax.SyntaxToken}    last         
         * @param   {boolean}                              inclusive    
         * @param   {Kusto.Language.Syntax.SyntaxToken}    excluded
         * @return  {boolean}
         */
        /**
         * Returns true if the tokens of the node are currently or will end up on different lines.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxNode}     node         
         * @param   {boolean}                              inclusive    
         * @param   {Kusto.Language.Syntax.SyntaxToken}    excluded
         * @return  {boolean}
         */
        /**
         * Returns true if the tokens will end up on different lines.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxToken}    first        
         * @param   {Kusto.Language.Syntax.SyntaxToken}    last         
         * @param   {boolean}                              inclusive    
         * @param   {Kusto.Language.Syntax.SyntaxToken}    excluded
         * @return  {boolean}
         */
        /**
         * Returns true if the tokens of the node will end up on different lines.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxNode}     node         
         * @param   {boolean}                              inclusive    
         * @param   {Kusto.Language.Syntax.SyntaxToken}    excluded
         * @return  {boolean}
         */
        /**
         * Returns true if the token's trivia will end up with at least one line break.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxToken}    token
         * @return  {boolean}
         */
        /**
         * Returns true if the token's trivia definitely will have a line break added.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxToken}    token
         * @return  {boolean}
         */
        /**
         * Returns true if the token's trivia will definitely have its line breaks removed.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxToken}    token
         * @return  {boolean}
         */
    }
    interface KustoFormatterFunc extends Function {
        prototype: KustoFormatter;
        AlignmentRule: Kusto.Language.Editor.KustoFormatter.AlignmentRuleFunc;
        ComputationState: KustoFormatter.ComputationStateFunc;
        SpacingKind: KustoFormatter.SpacingKindFunc;
        SpacingRule: Kusto.Language.Editor.KustoFormatter.SpacingRuleFunc;
        /**
         * Gets the formatted text for the node.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxNode}           node             
         * @param   {Kusto.Language.Editor.FormattingOptions}    options          
         * @param   {number}                                     caretPosition
         * @return  {Kusto.Language.Editor.FormattedText}
         */
        GetFormattedText(node: Kusto.Language.Syntax.SyntaxNode | null, options: Kusto.Language.Editor.FormattingOptions | null, caretPosition: number): Kusto.Language.Editor.FormattedText | null;
        /**
         * Get the spacing kind that will force removal of existing new line
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Editor.SpacingStyle}    style
         * @return  {number}
         */
        /**
         * Get the spacing kind for the after token part of the dual style
         that will force removal of existing new line.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Editor.DualSpacingStyle}    style
         * @return  {number}
         */
        /**
         * Returns true if the tokens were originally on different lines.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxToken}    first        
         * @param   {Kusto.Language.Syntax.SyntaxToken}    last         
         * @param   {boolean}                              inclusive    
         * @param   {Kusto.Language.Syntax.SyntaxToken}    excluded
         * @return  {boolean}
         */
        /**
         * Returns true if the tokens of the node are currently on different lines.
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoFormatter
         * @memberof Kusto.Language.Editor.KustoFormatter
         * @param   {Kusto.Language.Syntax.SyntaxNode}     node         
         * @param   {boolean}                              inclusive    
         * @param   {Kusto.Language.Syntax.SyntaxToken}    excluded
         * @return  {boolean}
         */
    }
    var KustoFormatter: KustoFormatterFunc;
    module KustoFormatter {
        /**
         * A formatting rule that determines the relative alignment between syntax elements
         when they appear on separate lines.
         *
         * @private
         * @class Kusto.Language.Editor.KustoFormatter.AlignmentRule
         */
        interface AlignmentRule {
            /**
             * The element to align relative to.
             If this value is null, alignment is relative to the current default.
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Editor.KustoFormatter.AlignmentRule
             * @function RelativeToElement
             * @type Kusto.Language.Syntax.SyntaxElement
             */
            RelativeToElement: Kusto.Language.Syntax.SyntaxElement | null;
            /**
             * The relative indentation (number of spaces to indent/exdent?).
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Editor.KustoFormatter.AlignmentRule
             * @function IndentationDelta
             * @type number
             */
            IndentationDelta: number;
        }
        interface AlignmentRuleFunc extends Function {
            prototype: AlignmentRule;
            ctor: {
                new (relativeTo: Kusto.Language.Syntax.SyntaxElement | null, indentationDelta: number): AlignmentRule
            };
            $ctor1: {
                new (indentationDelta: number): AlignmentRule
            };
        }

        interface ComputationState {
        }
        interface ComputationStateFunc extends Function {
            prototype: ComputationState;
            Uncomputed: number;
            Computing: number;
            Computed: number;
        }

        interface SpacingKind {
        }
        interface SpacingKindFunc extends Function {
            prototype: SpacingKind;
            /**
             * Spacing is unknown.  This value is not used.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 0
             * @type number
             */
            Unknown: number;
            /**
             * Leave spacing as is.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 2
             * @type number
             */
            AsIs: number;
            /**
             * Align leading spacing between tokens if they are on separate lines
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 4
             * @type number
             */
            AlignOnly: number;
            /**
             * No space between tokens
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 8
             * @type number
             */
            NoSpace: number;
            /**
             * No space between tokens if they are on the same line.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 16
             * @type number
             */
            NoSpaceIfOnSameLine: number;
            /**
             * A single space between tokens.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 32
             * @type number
             */
            SingleSpace: number;
            /**
             * A single space between tokens if they are on the same line.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 64
             * @type number
             */
            SingleSpaceIfOnSameLine: number;
            /**
             * Minimal space between tokens
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 128
             * @type number
             */
            MinimalSpace: number;
            /**
             * Minimal space between tokens if they are on the same line.
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 256
             * @type number
             */
            MinimalSpaceIfOnSameLine: number;
            /**
             * A single new line between tokens if they are on the same line
             *
             * @static
             * @public
             * @memberof number
             * @constant
             * @default 512
             * @type number
             */
            NewLine: number;
        }

        /**
         * A formating rule that dictates the spacing/trivia between tokens.
         *
         * @private
         * @class Kusto.Language.Editor.KustoFormatter.SpacingRule
         */
        interface SpacingRule {
            GetKind(): number;
            /**
             * Create a new {@link } that applies another rule if this rule does not apply.
             *
             * @instance
             * @public
             * @this Kusto.Language.Editor.KustoFormatter.SpacingRule
             * @memberof Kusto.Language.Editor.KustoFormatter.SpacingRule
             * @param   {Kusto.Language.Editor.KustoFormatter.SpacingRule}    rule
             * @return  {Kusto.Language.Editor.KustoFormatter.SpacingRule}
             */
            Otherwise(rule: Kusto.Language.Editor.KustoFormatter.SpacingRule | null): Kusto.Language.Editor.KustoFormatter.SpacingRule | null;
        }
        interface SpacingRuleFunc extends Function {
            prototype: SpacingRule;
            new (kind: number, condition: {(): boolean} | null, otherwise: Kusto.Language.Editor.KustoFormatter.SpacingRule | null): SpacingRule;
            From(kind: number): Kusto.Language.Editor.KustoFormatter.SpacingRule | null;
        }
    }

    interface KustoOutliner {
    }
    interface KustoOutlinerFunc extends Function {
        prototype: KustoOutliner;
        new (): KustoOutliner;
        GetOutlines(code: Kusto.Language.KustoCode | null, options: Kusto.Language.Editor.OutliningOptions | null): Kusto.Language.Editor.OutlineInfo | null;
    }
    var KustoOutliner: KustoOutlinerFunc;

    interface KustoQualifier {
    }
    interface KustoQualifierFunc extends Function {
        prototype: KustoQualifier;
        new (): KustoQualifier;
        /**
         * Returns the query text with the database entities fully qualified.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.KustoQualifier
         * @memberof Kusto.Language.Editor.KustoQualifier
         * @param   {string}                        query      
         * @param   {Kusto.Language.GlobalState}    globals
         * @return  {string}
         */
        FullyQualify(query: string | null, globals: Kusto.Language.GlobalState | null): string | null;
        /**
         * Returns the query text with the database entities minimally qualified.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.KustoQualifier
         * @memberof Kusto.Language.Editor.KustoQualifier
         * @param   {string}                        query      
         * @param   {Kusto.Language.GlobalState}    globals
         * @return  {string}
         */
        MinimallyQualify(query: string | null, globals: Kusto.Language.GlobalState | null): string | null;
        /**
         * Returns the query text with the database entities minimally qualified to match the new default cluster and database.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.KustoQualifier
         * @memberof Kusto.Language.Editor.KustoQualifier
         * @param   {string}                                   text           
         * @param   {Kusto.Language.GlobalState}               globals        
         * @param   {Kusto.Language.Symbols.ClusterSymbol}     newCluster     
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}    newDatabase
         * @return  {string}
         */
        Requalify(text: string | null, globals: Kusto.Language.GlobalState | null, newCluster: Kusto.Language.Symbols.ClusterSymbol | null, newDatabase: Kusto.Language.Symbols.DatabaseSymbol | null): string | null;
        /**
         * Requalify (minimally) the entity expressions within the text with respect to the target cluster and database.
         *
         * @static
         * @this Kusto.Language.Editor.KustoQualifier
         * @memberof Kusto.Language.Editor.KustoQualifier
         * @param   {Kusto.Language.Editor.EditString}         text        
         * @param   {Kusto.Language.Syntax.SyntaxNode}         root        
         * @param   {Kusto.Language.GlobalState}               globals     
         * @param   {Kusto.Language.Symbols.ClusterSymbol}     cluster     
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}    database
         * @return  {Kusto.Language.Editor.EditString}
         */
    }
    var KustoQualifier: KustoQualifierFunc;

    /**
     * Functions for finding cluster and database name references in the code.
     *
     * @class Kusto.Language.Editor.KustoReferenceFinder
     */
    interface KustoReferenceFinder {
        /**
         * Gets the references to cluster names in the code.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.KustoReferenceFinder
         * @memberof Kusto.Language.Editor.KustoReferenceFinder
         * @param   {Kusto.Language.Syntax.SyntaxNode}          root                 
         * @param   {Kusto.Language.Syntax.SyntaxNode}          location             
         * @param   {System.Collections.Generic.List$1}         clusters             
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken
         * @return  {void}
         */
        GetClusterReferences(root: Kusto.Language.Syntax.SyntaxNode | null, location: Kusto.Language.Syntax.SyntaxNode | null, clusters: System.Collections.Generic.List$1<Kusto.Language.Editor.ClusterReference> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
        /**
         * Gets all references to database names in the code.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.KustoReferenceFinder
         * @memberof Kusto.Language.Editor.KustoReferenceFinder
         * @param   {Kusto.Language.Syntax.SyntaxNode}          root                 
         * @param   {Kusto.Language.Syntax.SyntaxNode}          location             
         * @param   {Kusto.Language.Symbols.ClusterSymbol}      currentCluster       
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}     currentDatabase      
         * @param   {System.Collections.Generic.List$1}         refs                 
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken
         * @return  {void}
         */
        GetDatabaseReferences(root: Kusto.Language.Syntax.SyntaxNode | null, location: Kusto.Language.Syntax.SyntaxNode | null, currentCluster: Kusto.Language.Symbols.ClusterSymbol | null, currentDatabase: Kusto.Language.Symbols.DatabaseSymbol | null, refs: System.Collections.Generic.List$1<Kusto.Language.Editor.DatabaseReference> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
    }
    interface KustoReferenceFinderFunc extends Function {
        prototype: KustoReferenceFinder;
        new (code: Kusto.Language.KustoCode | null): KustoReferenceFinder;
    }
    var KustoReferenceFinder: KustoReferenceFinderFunc;

    interface KustoRelatedElementFinder {
        FindRelatedElements(position: number, options?: Kusto.Language.Editor.FindRelatedOptions): Kusto.Language.Editor.RelatedInfo | null;
        GetRelatedNameReferencesAndDeclarations(token: Kusto.Language.Syntax.SyntaxToken | null, elements: System.Collections.Generic.List$1<Kusto.Language.Editor.RelatedElement> | null, options: Kusto.Language.Editor.FindRelatedOptions): void;
    }
    interface KustoRelatedElementFinderFunc extends Function {
        prototype: KustoRelatedElementFinder;
        new (code: Kusto.Language.KustoCode | null): KustoRelatedElementFinder;
        /**
         * Returns true if the symbol of element <b />
         is equal to <b />
         *
         * @static
         * @private
         * @this Kusto.Language.Editor.KustoRelatedElementFinder
         * @memberof Kusto.Language.Editor.KustoRelatedElementFinder
         * @param   {Kusto.Language.Symbols.Symbol}               symbol     
         * @param   {Kusto.Language.Syntax.SyntaxElement}         element    
         * @param   {Kusto.Language.Editor.FindRelatedOptions}    options
         * @return  {boolean}
         */
    }
    var KustoRelatedElementFinder: KustoRelatedElementFinderFunc;

    interface KustoQuickInfoBuilder {
        /**
         * Gets the quick info for the item near the specified text position.
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.KustoQuickInfoBuilder
         * @memberof Kusto.Language.Editor.KustoQuickInfoBuilder
         * @param   {number}                                    position             
         * @param   {Kusto.Language.Utils.CancellationToken}    cancellationToken
         * @return  {Kusto.Language.Editor.QuickInfo}
         */
        GetQuickInfo(position: number, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.QuickInfo | null;
        /**
         * Gets the classified display text for a symbol.
         *
         * @instance
         * @private
         * @this Kusto.Language.Editor.KustoQuickInfoBuilder
         * @memberof Kusto.Language.Editor.KustoQuickInfoBuilder
         * @param   {Kusto.Language.Symbols.Symbol}        symbol        
         * @param   {Kusto.Language.Symbols.Signature}     signature     
         * @param   {Kusto.Language.Symbols.TypeSymbol}    returnType    
         * @param   {Kusto.Language.Syntax.ValueInfo}      value         
         * @param   {System.Collections.Generic.List$1}    texts
         * @return  {void}
         */
    }
    interface KustoQuickInfoBuilderFunc extends Function {
        prototype: KustoQuickInfoBuilder;
        new (service: Kusto.Language.Editor.KustoCodeService | null, code: Kusto.Language.KustoCode | null, options: Kusto.Language.Editor.QuickInfoOptions | null): KustoQuickInfoBuilder;
    }
    var KustoQuickInfoBuilder: KustoQuickInfoBuilderFunc;

    /**
     * Determines which direction to favor when translating positions
     that fall within inserted/deleted regions.
     *
     * @public
     * @class Kusto.Language.Editor.PositionBias
     */
    enum PositionBias {
        Left = 0,
        Right = 1
    }

    /**
     * A {@link } fixes problems identified by diagnostics.
     *
     * @abstract
     * @class Kusto.Language.Editor.KustoFixer
     */
    interface KustoFixer {
        /**
         * The name of this analyzer.
         This is used to find the analyzer that created the {@link } when the action is being applied.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.KustoFixer
         * @function Name
         * @type string
         */
        Name: string | null;
        /**
         * The diagnostics produced by this analyzer.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.KustoFixer
         * @function Diagnostics
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * Gets the fix actions for the diagnostic
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.KustoFixer
         * @memberof Kusto.Language.Editor.KustoFixer
         * @param   {Kusto.Language.KustoCode}                      code                    
         * @param   {Kusto.Language.Diagnostic}                     cursorDiagnostic        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    selectionDiagnostics    
         * @param   {Kusto.Language.Editor.CodeActionOptions}       options                 
         * @param   {System.Collections.Generic.List$1}             actions                 
         * @param   {Kusto.Language.Utils.CancellationToken}        cancellationToken
         * @return  {void}
         */
        GetFixActions(code: Kusto.Language.KustoCode | null, cursorDiagnostic: Kusto.Language.Diagnostic | null, selectionDiagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null, options: Kusto.Language.Editor.CodeActionOptions | null, actions: System.Collections.Generic.List$1<Kusto.Language.Editor.CodeAction> | null, cancellationToken: Kusto.Language.Utils.CancellationToken): void;
        /**
         * Gets the fix actions for the diagnostic
         *
         * @instance
         * @protected
         * @this Kusto.Language.Editor.KustoFixer
         * @memberof Kusto.Language.Editor.KustoFixer
         * @param   {Kusto.Language.KustoCode}                   code                 
         * @param   {Kusto.Language.Diagnostic}                  dx                   
         * @param   {Kusto.Language.Editor.CodeActionOptions}    options              
         * @param   {System.Collections.Generic.List$1}          actions              
         * @param   {Kusto.Language.Utils.CancellationToken}     cancellationToken
         * @return  {void}
         */
        /**
         * Applies the fix action
         *
         * @instance
         * @public
         * @this Kusto.Language.Editor.KustoFixer
         * @memberof Kusto.Language.Editor.KustoFixer
         * @param   {Kusto.Language.KustoCode}                   code                 
         * @param   {Kusto.Language.Editor.ApplyAction}          action               
         * @param   {number}                                     caretPosition        
         * @param   {Kusto.Language.Editor.CodeActionOptions}    options              
         * @param   {Kusto.Language.Utils.CancellationToken}     cancellationToken
         * @return  {Kusto.Language.Editor.CodeActionResult}
         */
        ApplyFixAction(code: Kusto.Language.KustoCode | null, action: Kusto.Language.Editor.ApplyAction | null, caretPosition: number, options: Kusto.Language.Editor.CodeActionOptions | null, cancellationToken: Kusto.Language.Utils.CancellationToken): Kusto.Language.Editor.CodeActionResult | null;
        /**
         * Returns the edits to apply to the query text and the new caret position
         for the specified action.
         *
         * @instance
         * @protected
         * @this Kusto.Language.Editor.KustoFixer
         * @memberof Kusto.Language.Editor.KustoFixer
         * @param   {Kusto.Language.KustoCode}                   code                 
         * @param   {Kusto.Language.Editor.ApplyAction}          action               
         * @param   {number}                                     caretPosition        
         * @param   {Kusto.Language.Editor.CodeActionOptions}    options              
         * @param   {Kusto.Language.Utils.CancellationToken}     cancellationToken
         * @return  {Kusto.Language.Editor.FixEdits}
         */
        /**
         * Override this method to suppy the example set of diagnostics that the analyzer produces.
         *
         * @instance
         * @abstract
         * @protected
         * @this Kusto.Language.Editor.KustoFixer
         * @memberof Kusto.Language.Editor.KustoFixer
         * @return  {System.Collections.Generic.IEnumerable$1}
         */
    }
    interface KustoFixerFunc extends Function {
        prototype: KustoFixer;
        new (): KustoFixer;
    }
    var KustoFixer: KustoFixerFunc;

    /**
     * The known kusto analyzers
     *
     * @static
     * @abstract
     * @class Kusto.Language.Editor.KustoAnalyzers
     */
    interface KustoAnalyzers {
    }
    interface KustoAnalyzersFunc extends Function {
        prototype: KustoAnalyzers;
        new (): KustoAnalyzers;
        AvoidUsingContains: Kusto.Language.Editor.KustoAnalyzer | null;
        AvoidUsingNullStringComparison: Kusto.Language.Editor.KustoAnalyzer | null;
        AvoidUsingToBoolOnNumerics: Kusto.Language.Editor.KustoAnalyzer | null;
        NullAggregation: Kusto.Language.Editor.KustoAnalyzer | null;
        AvoidUsingFormatDatetimeInPredicate: Kusto.Language.Editor.KustoAnalyzer | null;
        AvoidUsingLegacyPartition: Kusto.Language.Editor.KustoAnalyzer | null;
        AvoidUsingObsoleteFunctions: Kusto.Language.Editor.KustoAnalyzer | null;
        AvoidJoinWithoutKind: Kusto.Language.Editor.KustoAnalyzer | null;
        StdevTimespanConversion: Kusto.Language.Editor.KustoAnalyzer | null;
        ColumnHasSameNameAsVariable: Kusto.Language.Editor.KustoAnalyzer | null;
        PreferUsingMaterializedViewIntrinsic: Kusto.Language.Editor.KustoAnalyzer | null;
        CalledFunctionHasErrors: Kusto.Language.Editor.KustoAnalyzer | null;
        AvoidUsingHasWithIPv4Strings: Kusto.Language.Editor.KustoAnalyzer | null;
        PreferUsingOptimizedAlternative: Kusto.Language.Editor.KustoAnalyzer | null;
        AvoidStrlenWithDynamic: Kusto.Language.Editor.KustoAnalyzer | null;
        /**
         * The set of all known kusto analyzers
         *
         * @static
         * @public
         * @memberof Kusto.Language.Editor.KustoAnalyzers
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.KustoAnalyzer> | null;
    }
    var KustoAnalyzers: KustoAnalyzersFunc;

    enum MinimalTextKind {
        RemoveLeadingWhitespaceAndComments = 0,
        MinimizeWhitespaceAndRemoveComments = 1,
        SingleLine = 2
    }

    interface OutlineInfo {
        /**
         * The ranges that can be collapsed.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.OutlineInfo
         * @function Ranges
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Ranges: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.OutlineRange> | null;
    }
    interface OutlineInfoFunc extends Function {
        prototype: OutlineInfo;
        new (ranges: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.OutlineRange> | null): OutlineInfo;
        Empty: Kusto.Language.Editor.OutlineInfo | null;
    }
    var OutlineInfo: OutlineInfoFunc;

    interface OutlineRange {
        /**
         * The start of the outline range.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.OutlineRange
         * @function Start
         * @type number
         */
        Start: number;
        /**
         * The length of the outline range.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.OutlineRange
         * @function Length
         * @type number
         */
        Length: number;
        /**
         * The text to show when the range is collapsed.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.OutlineRange
         * @function CollapsedText
         * @type string
         */
        CollapsedText: string | null;
    }
    interface OutlineRangeFunc extends Function {
        prototype: OutlineRange;
        new (start: number, length: number, collapsedText: string | null): OutlineRange;
    }
    var OutlineRange: OutlineRangeFunc;

    interface OutliningOptions {
        /**
         * The maximum number of characters in collapsed text.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.OutliningOptions
         * @function MaxCollapsedTextLength
         * @type number
         */
        MaxCollapsedTextLength: number;
        /**
         * Outline the entire query block
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.OutliningOptions
         * @function Queries
         * @type boolean
         */
        Queries: boolean;
        /**
         * Outline each statement that spans multiple lines
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Editor.OutliningOptions
         * @function Statements
         * @type boolean
         */
        Statements: boolean;
        WithMaxCollapesedTextlength(length: number): Kusto.Language.Editor.OutliningOptions | null;
        WithQueries(enable: boolean): Kusto.Language.Editor.OutliningOptions | null;
        WithStatements(enable: boolean): Kusto.Language.Editor.OutliningOptions | null;
    }
    interface OutliningOptionsFunc extends Function {
        prototype: OutliningOptions;
        Default: Kusto.Language.Editor.OutliningOptions | null;
    }
    var OutliningOptions: OutliningOptionsFunc;

    interface ParserAndIndex$1<TInput> {
        Parser: Kusto.Language.Parsing.Parser$1<TInput> | null;
        IndexInParent: number;
        getHashCode(): number;
        equals(o: Kusto.Language.Editor.ParserAndIndex$1<TInput>): boolean;
        $clone(to: Kusto.Language.Editor.ParserAndIndex$1<TInput>): Kusto.Language.Editor.ParserAndIndex$1<TInput>;
    }
    interface ParserAndIndex$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: ParserAndIndex$1<TInput>;
            $ctor1: {
                new (parser: Kusto.Language.Parsing.Parser$1<TInput> | null, indexInParent: number): ParserAndIndex$1<TInput>
            };
            new (): ParserAndIndex$1<TInput>;
            ctor: {
                new (): ParserAndIndex$1<TInput>
            };
        }
    }
    var ParserAndIndex$1: ParserAndIndex$1Func;

    interface ParserPath$1<TInput> {
        /**
         * This parser
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.ParserPath$1
         * @function Parser
         * @type Kusto.Language.Parsing.Parser$1
         */
        Parser: Kusto.Language.Parsing.Parser$1<TInput> | null;
        /**
         * The parent parser
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.ParserPath$1
         * @function Parent
         * @type Kusto.Language.Editor.ParserPath$1
         */
        Parent: Kusto.Language.Editor.ParserPath$1<TInput> | null;
        /**
         * Index of child in parent that this parser is.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.ParserPath$1
         * @function IndexInParent
         * @type number
         */
        IndexInParent: number;
        /**
         * The number of child paths
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Editor.ParserPath$1
         * @function ChildCount
         * @type number
         */
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Editor.ParserPath$1<TInput> | null;
    }
    interface ParserPath$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: ParserPath$1<TInput>;
            ctor: {
                new (parserAndIndex: Kusto.Language.Editor.ParserAndIndex$1<TInput>): ParserPath$1<TInput>
            };
            /**
             * Construct a path from a sequence of parsers
             *
             * @static
             * @public
             * @this Kusto.Language.Editor.ParserPath$1
             * @memberof Kusto.Language.Editor.ParserPath$1
             * @param   {System.Collections.Generic.IReadOnlyList$1}    path
             * @return  {Kusto.Language.Editor.ParserPath$1}
             */
            From(path: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ParserAndIndex$1<TInput>> | null): Kusto.Language.Editor.ParserPath$1<TInput> | null;
        }
    }
    var ParserPath$1: ParserPath$1Func;

    enum PlacementStyle {
        None = 0,
        NewLine = 1,
        Smart = 2
    }

    interface KustoServiceHelpers {
    }
    interface KustoServiceHelpersFunc extends Function {
        prototype: KustoServiceHelpers;
        new (): KustoServiceHelpers;
        /**
         * Get the token that the position has affinity with,
         or null if the position does not have affinity (in whitespace between tokens).
         *
         * @static
         * @this Kusto.Language.Editor.KustoServiceHelpers
         * @memberof Kusto.Language.Editor.KustoServiceHelpers
         * @param   {Kusto.Language.KustoCode}             code        
         * @param   {number}                               position
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        /**
         * Returns true if the token has affinity with the position.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.KustoServiceHelpers
         * @memberof Kusto.Language.Editor.KustoServiceHelpers
         * @param   {Kusto.Language.Syntax.SyntaxToken}    token       
         * @param   {number}                               position
         * @return  {boolean}
         */
        HasAffinity(token: Kusto.Language.Syntax.SyntaxToken | null, position: number): boolean;
        /**
         * Gets the token left of the token that has affinity with the position.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.KustoServiceHelpers
         * @memberof Kusto.Language.Editor.KustoServiceHelpers
         * @param   {Kusto.Language.KustoCode}             code        
         * @param   {number}                               position
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        GetTokenLeftOfPosition(code: Kusto.Language.KustoCode | null, position: number): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Returns the complete expression that exists to the left of the position.
         *
         * @static
         * @public
         * @this Kusto.Language.Editor.KustoServiceHelpers
         * @memberof Kusto.Language.Editor.KustoServiceHelpers
         * @param   {Kusto.Language.KustoCode}            code        
         * @param   {number}                              position
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetCompleteExpressionLeftOfPosition(code: Kusto.Language.KustoCode | null, position: number): Kusto.Language.Syntax.Expression | null;
    }
    var KustoServiceHelpers: KustoServiceHelpersFunc;

    interface QuickInfo {
        Items: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.QuickInfoItem> | null;
        Text: string | null;
    }
    interface QuickInfoFunc extends Function {
        prototype: QuickInfo;
        $ctor2: {
            new (text: string | null): QuickInfo
        };
        ctor: {
            new (items: Kusto.Language.Editor.QuickInfoItem[] | null): QuickInfo
        };
        $ctor1: {
            new (items: System.Collections.Generic.IEnumerable$1<Kusto.Language.Editor.QuickInfoItem> | null): QuickInfo
        };
        Empty: Kusto.Language.Editor.QuickInfo | null;
    }
    var QuickInfo: QuickInfoFunc;

    /**
     * Diagnostic codes produced by kusto analyzers.
     They must be unique.
     *
     * @static
     * @abstract
     * @class Kusto.Language.Editor.KustoAnalyzerCodes
     */
    interface KustoAnalyzerCodes {
    }
    interface KustoAnalyzerCodesFunc extends Function {
        prototype: KustoAnalyzerCodes;
        new (): KustoAnalyzerCodes;
    }
    var KustoAnalyzerCodes: KustoAnalyzerCodesFunc;

}

    /**
     * @memberof Kusto.Language.Parsing
     * @callback Kusto.Language.Parsing.SourceConsumer
     * @param   {Kusto.Language.Parsing.Source$1}    source    
     * @param   {number}                             start
     * @return  {number}
     */

    /**
     * @memberof Kusto.Language.Parsing
     * @callback Kusto.Language.Parsing.SourceProducer
     * @param   {Kusto.Language.Parsing.Source$1}    source    
     * @param   {number}                             start     
     * @param   {number}                             length
     * @return  {TOutput}
     */

declare namespace Kusto.Language.Parsing {
    /** @namespace Kusto.Language.Parsing */

    /**
     * A parser that succeeds if it successfully consumes tokens.
     The consumed tokens are converted into a produced values.
     *
     * @public
     * @class Kusto.Language.Parsing.MatchParser$2
     * @augments Kusto.Language.Parsing.Parser$2
     */
    interface MatchParser$2<TInput,TOutput> extends Kusto.Language.Parsing.Parser$2<TInput,TOutput> {
        Consumer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number): number} | null;
        Producer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number, length: number): TOutput} | null;
        IsMatch: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Parse$1(source: Kusto.Language.Parsing.Source$1<TInput> | null, start?: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
    }
    interface MatchParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: MatchParser$2<TInput,TOutput>;
            ctor: {
                new (consumer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number): number} | null, producer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number, length: number): TOutput} | null): MatchParser$2<TInput,TOutput>
            };
            $ctor1: {
                new (predicate: {(arg: TInput): boolean} | null, producer: {(arg: TInput): TOutput} | null): MatchParser$2<TInput,TOutput>
            };
        }
    }
    var MatchParser$2: MatchParser$2Func;

    interface ApplyParser$3<TInput,TLeft,TOutput> extends Kusto.Language.Parsing.ListPrimaryParser$2<TInput,TOutput> {
        LeftParser: Kusto.Language.Parsing.Parser$2<TInput,TLeft> | null;
        RightParser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
        ApplyKind: Kusto.Language.Parsing.ApplyKind;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface ApplyParser$3Func extends Function {
        <TInput, TLeft, TOutput>($TInput: Bridge.TypeRef<TInput>, $TLeft: Bridge.TypeRef<TLeft>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: ApplyParser$3<TInput,TLeft,TOutput>;
            $ctor1: {
                new (kind: Kusto.Language.Parsing.ApplyKind, leftParser: Kusto.Language.Parsing.Parser$2<TInput,TLeft> | null, rightParser: Kusto.Language.Parsing.RightParser$2<TInput,TOutput>): ApplyParser$3<TInput,TLeft,TOutput>
            };
        }
    }
    var ApplyParser$3: ApplyParser$3Func;

    interface RequiredParser$2<TInput,TOutput> extends Kusto.Language.Parsing.Parser$2<TInput,TOutput> {
        Parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
        Producer: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TOutput} | null;
        IsRequired: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse$1(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface RequiredParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: RequiredParser$2<TInput,TOutput>;
            new (parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null, producer: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TOutput} | null): RequiredParser$2<TInput,TOutput>;
        }
    }
    var RequiredParser$2: RequiredParser$2Func;

    /**
     * A parser that converts the tokens that would otherwise be consumed by another parser (Pattern) into a different output.
     *
     * @public
     * @class Kusto.Language.Parsing.ConvertParser$2
     * @augments Kusto.Language.Parsing.ResultPrimaryParser$2
     */
    interface ConvertParser$2<TInput,TOutput> extends Kusto.Language.Parsing.ResultPrimaryParser$2<TInput,TOutput> {
        Pattern: Kusto.Language.Parsing.Parser$1<TInput> | null;
        ListProducer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number, length: number): TOutput} | null;
        SingleProducer: {(arg: TInput): TOutput} | null;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse$1(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface ConvertParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: ConvertParser$2<TInput,TOutput>;
            ctor: {
                new (pattern: Kusto.Language.Parsing.Parser$1<TInput> | null, producer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number, length: number): TOutput} | null): ConvertParser$2<TInput,TOutput>
            };
            $ctor3: {
                new (pattern: Kusto.Language.Parsing.Parser$1<TInput> | null, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<TInput>): TOutput} | null): ConvertParser$2<TInput,TOutput>
            };
            $ctor2: {
                new (pattern: Kusto.Language.Parsing.Parser$1<TInput> | null, producer: {(arg: TInput): TOutput} | null): ConvertParser$2<TInput,TOutput>
            };
        }
    }
    var ConvertParser$2: ConvertParser$2Func;

    /**
     * A parser that succeeds if the Limited parser succeeds with only the tokens that the Limiter parser successfully scans.
     *
     * @public
     * @class Kusto.Language.Parsing.LimitParser$2
     * @augments Kusto.Language.Parsing.Parser$2
     */
    interface LimitParser$2<TInput,TOutput> extends Kusto.Language.Parsing.Parser$2<TInput,TOutput> {
        Limiter: Kusto.Language.Parsing.Parser$1<TInput> | null;
        Limited: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
        IsConditional: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse$1(input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
        Parse(input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number): number;
    }
    interface LimitParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: LimitParser$2<TInput,TOutput>;
            new (limiter: Kusto.Language.Parsing.Parser$1<TInput> | null, limited: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null): LimitParser$2<TInput,TOutput>;
        }
    }
    var LimitParser$2: LimitParser$2Func;

    interface OptionalParser$2<TInput,TOutput> extends Kusto.Language.Parsing.Parser$2<TInput,TOutput> {
        Parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
        Producer: {(): TOutput} | null;
        IsOptional: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse$1(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface OptionalParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: OptionalParser$2<TInput,TOutput>;
            new (parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null, producer: {(): TOutput} | null): OptionalParser$2<TInput,TOutput>;
        }
    }
    var OptionalParser$2: OptionalParser$2Func;

    interface IsParentVisitor extends Kusto.Language.Parsing.ParserVisitor$3<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken>,boolean> {
        VisitApply<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ApplyParser$3<Kusto.Language.Parsing.LexicalToken,TLeft,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitBest$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.BestParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitBest(parser: Kusto.Language.Parsing.BestParser$1<Kusto.Language.Parsing.LexicalToken> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitConvert<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ConvertParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitFails(parser: Kusto.Language.Parsing.FailsParser$1<Kusto.Language.Parsing.LexicalToken> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitFirst$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.FirstParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitFirst(parser: Kusto.Language.Parsing.FirstParser$1<Kusto.Language.Parsing.LexicalToken> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitForward<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ForwardParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitIf$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.IfParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitIf(parser: Kusto.Language.Parsing.IfParser$1<Kusto.Language.Parsing.LexicalToken> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitMap<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MapParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitMatch(parser: Kusto.Language.Parsing.MatchParser$1<Kusto.Language.Parsing.LexicalToken> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitMatch$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MatchParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitNot(parser: Kusto.Language.Parsing.NotParser$1<Kusto.Language.Parsing.LexicalToken> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitOneOrMore(parser: Kusto.Language.Parsing.OneOrMoreParser$1<Kusto.Language.Parsing.LexicalToken> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitOptional<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.OptionalParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitProduce<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ProduceParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitRequired<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RequiredParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitRule<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RuleParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitSequence(parser: Kusto.Language.Parsing.SequenceParser$1<Kusto.Language.Parsing.LexicalToken> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitZeroOrMore(parser: Kusto.Language.Parsing.ZeroOrMoreParser$1<Kusto.Language.Parsing.LexicalToken> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
        VisitLimit<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.LimitParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, child: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null): boolean;
    }
    interface IsParentVisitorFunc extends Function {
        prototype: IsParentVisitor;
        new (): IsParentVisitor;
        Instance: Kusto.Language.Parsing.IsParentVisitor | null;
    }
    var IsParentVisitor: IsParentVisitorFunc;

    /**
     * A parser with output list based parsing implemented over result based parsing.
     These parsers should *not* wrap other parsers.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Parsing.ResultPrimaryParser$2
     * @augments Kusto.Language.Parsing.Parser$2
     */
    interface ResultPrimaryParser$2<TInput,TOutput> extends Kusto.Language.Parsing.Parser$2<TInput,TOutput> {
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
    }
    interface ResultPrimaryParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: ResultPrimaryParser$2<TInput,TOutput>;
            new (): ResultPrimaryParser$2<TInput,TOutput>;
        }
    }
    var ResultPrimaryParser$2: ResultPrimaryParser$2Func;

    interface FirstParser$2<TInput,TOutput> extends Kusto.Language.Parsing.Parser$2<TInput,TOutput> {
        Parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$2<TInput,TOutput>> | null;
        IsAlternation: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse$1(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface FirstParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: FirstParser$2<TInput,TOutput>;
            new (parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$2<TInput,TOutput>> | null): FirstParser$2<TInput,TOutput>;
        }
    }
    var FirstParser$2: FirstParser$2Func;

    interface ZeroOrMoreParser$1<TInput> extends Kusto.Language.Parsing.Parser$1<TInput> {
        Parser: Kusto.Language.Parsing.Parser$1<TInput> | null;
        ZeroOrOne: boolean;
        IsOptional: boolean;
        IsRepetition: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface ZeroOrMoreParser$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: ZeroOrMoreParser$1<TInput>;
            new (parser: Kusto.Language.Parsing.Parser$1<TInput> | null, zeroOrOne: boolean): ZeroOrMoreParser$1<TInput>;
        }
    }
    var ZeroOrMoreParser$1: ZeroOrMoreParser$1Func;

    /**
     * A source of text for syntax parsing
     *
     * @public
     * @class Kusto.Language.Parsing.TextSource
     * @augments Kusto.Language.Parsing.Source$1
     */
    interface TextSource extends Kusto.Language.Parsing.Source$1<number> {
        /**
         * The current position within the source text.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.TextSource
         * @function Position
         * @type number
         */
        Position: number;
        Peek(n?: number): number;
        IsEnd(n?: number): boolean;
        PeekText(length: number): string | null;
        PeekText$1(start: number, length: number): string | null;
        Matches(start: number, text: string | null): boolean;
        Matches$1(start: number, text: string | null, ignoreCase: boolean): boolean;
    }
    interface TextSourceFunc extends Function {
        prototype: TextSource;
        $ctor1: {
            new (source: string | null, offset: number, length: number): TextSource
        };
        ctor: {
            new (source: string | null): TextSource
        };
    }
    var TextSource: TextSourceFunc;

    interface StackSafeScanner$1<TInput> extends Kusto.Language.Parsing.ParserVisitor$2<TInput,Kusto.Language.Parsing.Parser$1<TInput>> {
        Initialize(source: Kusto.Language.Parsing.Source$1<TInput> | null): void;
        Clear(): void;
        /**
         * Parse using a state machine, does not use the call stack.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.StackSafeScanner$1
         * @memberof Kusto.Language.Parsing.StackSafeScanner$1
         * @param   {Kusto.Language.Parsing.Parser$1}    parser    
         * @param   {number}                             start
         * @return  {number}
         */
        Scan(parser: Kusto.Language.Parsing.Parser$1<TInput> | null, start: number): number;
        VisitApply<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ApplyParser$3<TInput,TLeft,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitBest(parser: Kusto.Language.Parsing.BestParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitBest$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.BestParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitConvert<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ConvertParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitFails(parser: Kusto.Language.Parsing.FailsParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitFirst$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.FirstParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitFirst(parser: Kusto.Language.Parsing.FirstParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitForward<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ForwardParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitIf$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.IfParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitIf(parser: Kusto.Language.Parsing.IfParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitLimit<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.LimitParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitMap<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MapParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitMatch(parser: Kusto.Language.Parsing.MatchParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitMatch$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MatchParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitNot(parser: Kusto.Language.Parsing.NotParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitOneOrMore(parser: Kusto.Language.Parsing.OneOrMoreParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitOptional<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.OptionalParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitProduce<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ProduceParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitRequired<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RequiredParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitRule<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RuleParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitSequence(parser: Kusto.Language.Parsing.SequenceParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitZeroOrMore(parser: Kusto.Language.Parsing.ZeroOrMoreParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
    }
    interface StackSafeScanner$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: StackSafeScanner$1<TInput>;
            ScanState: Kusto.Language.Parsing.StackSafeScanner$1.ScanStateFunc;
            new (source: Kusto.Language.Parsing.Source$1<TInput> | null): StackSafeScanner$1<TInput>;
        }
    }
    var StackSafeScanner$1: StackSafeScanner$1Func;
    module StackSafeScanner$1 {
        interface ScanState<TInput> {
            /**
             * The accumulated input length consumed by this parser
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeScanner$1.ScanState
             * @type number
             */
            InputLength: number;
            /**
             * The parser execution state
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeScanner$1.ScanState
             * @type number
             */
            State: number;
            /**
             * The result of the last sub-parser
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeScanner$1.ScanState
             * @type number
             */
            LastResult: number;
            /**
             * The result length of the best failed parser
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeScanner$1.ScanState
             * @type number
             */
            BestFailedResult: number;
            /**
             * The result length of the best successful parser
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeScanner$1.ScanState
             * @type number
             */
            BestSuccessResult: number;
            /**
             * The previous input source
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeScanner$1.ScanState
             * @type Kusto.Language.Parsing.Source$1
             */
            PreviousSource: Kusto.Language.Parsing.Source$1<TInput> | null;
            Parser: Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * The input start
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeScanner$1.ScanState
             * @function InputStart
             * @type number
             */
            InputStart: number;
            Init(parser: Kusto.Language.Parsing.Parser$1<TInput> | null, inputStart: number): void;
        }
        interface ScanStateFunc extends Function {
            <TInput>($TInput: Bridge.TypeRef<TInput>): {
                prototype: ScanState<TInput>;
                new (): ScanState<TInput>;
            }
        }
    }

    interface StackSafeParser$1<TInput> extends Kusto.Language.Parsing.ParserVisitor$2<TInput,Kusto.Language.Parsing.Parser$1<TInput>> {
        Initialize(source: Kusto.Language.Parsing.Source$1<TInput> | null, output: System.Collections.Generic.List$1<any> | null): void;
        Clear(): void;
        /**
         * Parse using private stack, does not use the call stack.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.StackSafeParser$1
         * @memberof Kusto.Language.Parsing.StackSafeParser$1
         * @param   {Kusto.Language.Parsing.Parser$1}    parser         
         * @param   {number}                             inputStart     
         * @param   {number}                             outputStart
         * @return  {number}
         */
        Parse(parser: Kusto.Language.Parsing.Parser$1<TInput> | null, inputStart: number, outputStart: number): number;
        VisitApply<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ApplyParser$3<TInput,TLeft,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitBest(parser: Kusto.Language.Parsing.BestParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitBest$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.BestParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitConvert<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ConvertParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitFails(parser: Kusto.Language.Parsing.FailsParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitFirst$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.FirstParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitFirst(parser: Kusto.Language.Parsing.FirstParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitForward<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ForwardParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitIf$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.IfParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitIf(parser: Kusto.Language.Parsing.IfParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitLimit<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.LimitParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitMap<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MapParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitMatch(parser: Kusto.Language.Parsing.MatchParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitMatch$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MatchParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitNot(parser: Kusto.Language.Parsing.NotParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitOneOrMore(parser: Kusto.Language.Parsing.OneOrMoreParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitOptional<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.OptionalParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitProduce<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ProduceParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitRequired<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RequiredParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitRule<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RuleParser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitSequence(parser: Kusto.Language.Parsing.SequenceParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        VisitZeroOrMore(parser: Kusto.Language.Parsing.ZeroOrMoreParser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
    }
    interface StackSafeParser$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: StackSafeParser$1<TInput>;
            ParseState: Kusto.Language.Parsing.StackSafeParser$1.ParseStateFunc;
            new (source: Kusto.Language.Parsing.Source$1<TInput> | null, output: System.Collections.Generic.List$1<any> | null): StackSafeParser$1<TInput>;
        }
    }
    var StackSafeParser$1: StackSafeParser$1Func;
    module StackSafeParser$1 {
        interface ParseState<TInput> {
            /**
             * The accumulated input length consumed by this parser
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeParser$1.ParseState
             * @type number
             */
            InputLength: number;
            /**
             * The output start for the next parser.
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeParser$1.ParseState
             * @type number
             */
            NextOutputStart: number;
            /**
             * The parser execution state
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeParser$1.ParseState
             * @type number
             */
            State: number;
            /**
             * The result of the last sub-parser
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeParser$1.ParseState
             * @type number
             */
            LastResult: number;
            /**
             * The result length of the best failed parser
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeParser$1.ParseState
             * @type number
             */
            BestFailedResult: number;
            /**
             * The result length of the best successful parser
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeParser$1.ParseState
             * @type number
             */
            BestSuccessResult: number;
            /**
             * The source that existed prior to the current operation
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeParser$1.ParseState
             * @type Kusto.Language.Parsing.Source$1
             */
            PreviousSource: Kusto.Language.Parsing.Source$1<TInput> | null;
            Parser: Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * The input start
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeParser$1.ParseState
             * @function InputStart
             * @type number
             */
            InputStart: number;
            /**
             * The true start of the output for the production
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeParser$1.ParseState
             * @function OutputStart
             * @type number
             */
            OutputStart: number;
            /**
             * The output count at the beginning of the parse. 
             This may occur after the OutputStart in right-side parsers
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Parsing.StackSafeParser$1.ParseState
             * @function OriginalOutputCount
             * @type number
             */
            OriginalOutputCount: number;
            Init(parser: Kusto.Language.Parsing.Parser$1<TInput> | null, inputStart: number, outputStart: number, outputCount: number): void;
        }
        interface ParseStateFunc extends Function {
            <TInput>($TInput: Bridge.TypeRef<TInput>): {
                prototype: ParseState<TInput>;
                new (): ParseState<TInput>;
            }
        }
    }

    interface OneOrMoreParser$1<TInput> extends Kusto.Language.Parsing.Parser$1<TInput> {
        Parser: Kusto.Language.Parsing.Parser$1<TInput> | null;
        IsRepetition: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface OneOrMoreParser$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: OneOrMoreParser$1<TInput>;
            new (parser: Kusto.Language.Parsing.Parser$1<TInput> | null): OneOrMoreParser$1<TInput>;
        }
    }
    var OneOrMoreParser$1: OneOrMoreParser$1Func;

    interface NotParser$1<TInput> extends Kusto.Language.Parsing.Parser$1<TInput> {
        Pattern: Kusto.Language.Parsing.Parser$1<TInput> | null;
        IsNegation: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface NotParser$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: NotParser$1<TInput>;
            new (parser: Kusto.Language.Parsing.Parser$1<TInput> | null): NotParser$1<TInput>;
        }
    }
    var NotParser$1: NotParser$1Func;

    /**
     * An input source with an artificially constrained index limit.
     *
     * @public
     * @class Kusto.Language.Parsing.LimitSource$1
     * @augments Kusto.Language.Parsing.Source$1
     */
    interface LimitSource$1<TInput> extends Kusto.Language.Parsing.Source$1<TInput> {
        IsEnd(n?: number): boolean;
        Peek(n?: number): TInput;
    }
    interface LimitSource$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: LimitSource$1<TInput>;
            new (source: Kusto.Language.Parsing.Source$1<TInput> | null, limit: number): LimitSource$1<TInput>;
        }
    }
    var LimitSource$1: LimitSource$1Func;

    /**
     * A parser that succeeds if both the Test parser scans and Parser parsers succeed.
     *
     * @public
     * @class Kusto.Language.Parsing.IfParser$1
     * @augments Kusto.Language.Parsing.Parser$1
     */
    interface IfParser$1<TInput> extends Kusto.Language.Parsing.Parser$1<TInput> {
        Test: Kusto.Language.Parsing.Parser$1<TInput> | null;
        Parser: Kusto.Language.Parsing.Parser$1<TInput> | null;
        IsConditional: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface IfParser$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: IfParser$1<TInput>;
            new (test: Kusto.Language.Parsing.Parser$1<TInput> | null, parser: Kusto.Language.Parsing.Parser$1<TInput> | null): IfParser$1<TInput>;
        }
    }
    var IfParser$1: IfParser$1Func;

    interface FirstParser$1<TInput> extends Kusto.Language.Parsing.Parser$1<TInput> {
        Parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null;
        IsAlternation: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputCount: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface FirstParser$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: FirstParser$1<TInput>;
            new (parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null): FirstParser$1<TInput>;
        }
    }
    var FirstParser$1: FirstParser$1Func;

    /**
     * A parser that succeeds if the specified Pattern parser fails.
     *
     * @public
     * @class Kusto.Language.Parsing.FailsParser$1
     * @augments Kusto.Language.Parsing.Parser$1
     */
    interface FailsParser$1<TInput> extends Kusto.Language.Parsing.Parser$1<TInput> {
        Pattern: Kusto.Language.Parsing.Parser$1<TInput> | null;
        IsNegation: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface FailsParser$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: FailsParser$1<TInput>;
            new (pattern: Kusto.Language.Parsing.Parser$1<TInput> | null): FailsParser$1<TInput>;
        }
    }
    var FailsParser$1: FailsParser$1Func;

    /**
     * A parser that succeeds if both the Test parser scans and Parser parsers succeed.
     *
     * @public
     * @class Kusto.Language.Parsing.IfParser$2
     * @augments Kusto.Language.Parsing.Parser$2
     */
    interface IfParser$2<TInput,TOutput> extends Kusto.Language.Parsing.Parser$2<TInput,TOutput> {
        Test: Kusto.Language.Parsing.Parser$1<TInput> | null;
        Parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
        IsConditional: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse$1(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface IfParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: IfParser$2<TInput,TOutput>;
            new (test: Kusto.Language.Parsing.Parser$1<TInput> | null, parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null): IfParser$2<TInput,TOutput>;
        }
    }
    var IfParser$2: IfParser$2Func;

    interface EngineCommandGrammar extends Kusto.Language.Parsing.CommandGrammar {
    }
    interface EngineCommandGrammarFunc extends Function {
        prototype: EngineCommandGrammar;
        new (globals: Kusto.Language.GlobalState | null): EngineCommandGrammar;
    }
    var EngineCommandGrammar: EngineCommandGrammarFunc;

    interface DataManagerCommandGrammar extends Kusto.Language.Parsing.CommandGrammar {
    }
    interface DataManagerCommandGrammarFunc extends Function {
        prototype: DataManagerCommandGrammar;
        new (globals: Kusto.Language.GlobalState | null): DataManagerCommandGrammar;
    }
    var DataManagerCommandGrammar: DataManagerCommandGrammarFunc;

    /**
     * A piece of source text that represents simple identifiers, keywords, literals or punctuation.
     {@link }'s are produced by {@link }
     *
     * @public
     * @class Kusto.Language.Parsing.LexicalToken
     */
    interface LexicalToken {
        /**
         * The kind of the token
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Parsing.LexicalToken
         * @function Kind
         * @type Kusto.Language.Syntax.SyntaxKind
         */
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The trivia (whitespace, etc) that preceeds the proper text of the token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Parsing.LexicalToken
         * @function Trivia
         * @type string
         */
        Trivia: string | null;
        /**
         * The text of the token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Parsing.LexicalToken
         * @function Text
         * @type string
         */
        Text: string | null;
        /**
         * Any diagnostics associated with the token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Parsing.LexicalToken
         * @function Diagnostics
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * The combined length of the trivia and text of the token
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.LexicalToken
         * @function Length
         * @type number
         */
        Length: number;
    }
    interface LexicalTokenFunc extends Function {
        prototype: LexicalToken;
        $ctor1: {
            new (kind: Kusto.Language.Syntax.SyntaxKind, trivia: string | null, text: string | null, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): LexicalToken
        };
        ctor: {
            new (kind: Kusto.Language.Syntax.SyntaxKind, trivia: string | null, text: string | null, diagnostic: Kusto.Language.Diagnostic | null): LexicalToken
        };
    }
    var LexicalToken: LexicalTokenFunc;

    interface ClusterManagerCommandGrammar extends Kusto.Language.Parsing.CommandGrammar {
    }
    interface ClusterManagerCommandGrammarFunc extends Function {
        prototype: ClusterManagerCommandGrammar;
        new (globals: Kusto.Language.GlobalState | null): ClusterManagerCommandGrammar;
    }
    var ClusterManagerCommandGrammar: ClusterManagerCommandGrammarFunc;

    interface BestParser$1<TInput> extends Kusto.Language.Parsing.Parser$1<TInput> {
        Parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null;
        IsAlternation: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface BestParser$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: BestParser$1<TInput>;
            new (parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null): BestParser$1<TInput>;
        }
    }
    var BestParser$1: BestParser$1Func;

    /**
     * An input source based on an array or input items.
     *
     * @public
     * @class Kusto.Language.Parsing.ArraySource$1
     * @augments Kusto.Language.Parsing.Source$1
     */
    interface ArraySource$1<TInput> extends Kusto.Language.Parsing.Source$1<TInput> {
        Peek(n: number): TInput;
        IsEnd(n?: number): boolean;
    }
    interface ArraySource$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: ArraySource$1<TInput>;
            new (input: System.Collections.Generic.IReadOnlyList$1<TInput> | null, start: number, length: number): ArraySource$1<TInput>;
        }
    }
    var ArraySource$1: ArraySource$1Func;

    interface AriaBridgeCommandGrammar extends Kusto.Language.Parsing.CommandGrammar {
    }
    interface AriaBridgeCommandGrammarFunc extends Function {
        prototype: AriaBridgeCommandGrammar;
        new (globals: Kusto.Language.GlobalState | null): AriaBridgeCommandGrammar;
    }
    var AriaBridgeCommandGrammar: AriaBridgeCommandGrammarFunc;

    /**
     * A parser that will produce exactly one output item if it succeeds.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Parsing.Parser$2
     * @augments Kusto.Language.Parsing.Parser$1
     */
    interface Parser$2<TInput,TOutput> extends Kusto.Language.Parsing.Parser$1<TInput> {
        /**
         * Creates a copy of this {@link } with the tag specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.Parser$2
         * @memberof Kusto.Language.Parsing.Parser$2
         * @param   {string}                             tag
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        WithTag$1(tag: string | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
        /**
         * Creates a copy of this {@link } with the annotations specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.Parser$2
         * @memberof Kusto.Language.Parsing.Parser$2
         * @param   {System.Collections.Generic.IEnumerable$1}    annotations
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        WithAnnotations$1(annotations: System.Collections.Generic.IEnumerable$1<any> | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
        /**
         * Creates a copy of this {@link } with the IsHidden property specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.Parser$2
         * @memberof Kusto.Language.Parsing.Parser$2
         * @param   {boolean}                            isHidden
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        WithIsHidden$1(isHidden: boolean): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
        /**
         * Creates a copy of this {@link } with the IsHidden property set to true.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.Parser$2
         * @memberof Kusto.Language.Parsing.Parser$2
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Hide$1(): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
        /**
         * Creates a copy of this {@link } that converts its output to the specified type.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.Parser$2
         * @memberof Kusto.Language.Parsing.Parser$2
         * @param   {Function}                           TNewOutput    The type to convert the output to.
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Cast<TNewOutput>(TNewOutput: {prototype: TNewOutput}): Kusto.Language.Parsing.Parser$2<TInput,TNewOutput> | null;
        /**
         * Parses input source items and produces a single output item.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Parsing.Parser$2
         * @memberof Kusto.Language.Parsing.Parser$2
         * @param   {Kusto.Language.Parsing.Source$1}         input         
         * @param   {number}                                  inputStart
         * @return  {Kusto.Language.Parsing.ParseResult$1}
         */
        Parse$1(input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
    }
    interface Parser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: Parser$2<TInput,TOutput>;
            new (): Parser$2<TInput,TOutput>;
        }
    }
    var Parser$2: Parser$2Func;

    interface ForwardParser$2<TInput,TOutput> extends Kusto.Language.Parsing.ListPrimaryParser$2<TInput,TOutput> {
        DeferredParser: {(): Kusto.Language.Parsing.Parser$2<TInput,TOutput>} | null;
        IsForward: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse$1(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface ForwardParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: ForwardParser$2<TInput,TOutput>;
            new (deferredParser: {(): Kusto.Language.Parsing.Parser$2<TInput,TOutput>} | null): ForwardParser$2<TInput,TOutput>;
        }
    }
    var ForwardParser$2: ForwardParser$2Func;

    interface MapParser$2<TInput,TOutput> extends Kusto.Language.Parsing.ResultPrimaryParser$2<TInput,TOutput> {
        IsMatch: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse$1(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface MapParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: MapParser$2<TInput,TOutput>;
            Node: Kusto.Language.Parsing.MapParser$2.NodeFunc;
            $ctor1: {
                new (keyValuePairs: System.Collections.Generic.IEnumerable$1<System.Collections.Generic.KeyValuePair$2<System.Collections.Generic.IEnumerable$1<TInput>,{(): TOutput}>> | null): MapParser$2<TInput,TOutput>
            };
        }
    }
    var MapParser$2: MapParser$2Func;
    module MapParser$2 {
        interface Node<TInput,TOutput> {
            HasValue: boolean;
            Value: {(): TOutput} | null;
            TryGetValueNode(key: TInput, node: {v: Kusto.Language.Parsing.MapParser$2.Node<TInput,TOutput> | null}): boolean;
        }
        interface NodeFunc extends Function {
            <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
                prototype: Node<TInput,TOutput>;
                From(keyValuePairs: System.Collections.Generic.IEnumerable$1<System.Collections.Generic.KeyValuePair$2<System.Collections.Generic.IEnumerable$1<TInput>,{(): TOutput}>> | null): Kusto.Language.Parsing.MapParser$2.Node<TInput,TOutput> | null;
            }
        }
    }

    interface ProduceParser$2<TInput,TProducer> extends Kusto.Language.Parsing.ListPrimaryParser$2<TInput,TProducer> {
        Parser: Kusto.Language.Parsing.Parser$1<TInput> | null;
        Producer: {(arg1: System.Collections.Generic.List$1<any>, arg2: number): TProducer} | null;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface ProduceParser$2Func extends Function {
        <TInput, TProducer>($TInput: Bridge.TypeRef<TInput>, $TProducer: Bridge.TypeRef<TProducer>): {
            prototype: ProduceParser$2<TInput,TProducer>;
            new (parser: Kusto.Language.Parsing.Parser$1<TInput> | null, producer: {(arg1: System.Collections.Generic.List$1<any>, arg2: number): TProducer} | null): ProduceParser$2<TInput,TProducer>;
        }
    }
    var ProduceParser$2: ProduceParser$2Func;

    interface RuleParser$2<TInput,TProducer> extends Kusto.Language.Parsing.ListPrimaryParser$2<TInput,TProducer> {
        Parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null;
        ListProducer: {(arg1: System.Collections.Generic.List$1<any>, arg2: number): TProducer} | null;
        ResultProducer: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): Kusto.Language.Parsing.ParseResult$1<TProducer>} | null;
        IsSequence: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
        Parse$1(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): Kusto.Language.Parsing.ParseResult$1<TProducer>;
        Parse(input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
    }
    interface RuleParser$2Func extends Function {
        <TInput, TProducer>($TInput: Bridge.TypeRef<TInput>, $TProducer: Bridge.TypeRef<TProducer>): {
            prototype: RuleParser$2<TInput,TProducer>;
            new (parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null, listProducer: {(arg1: System.Collections.Generic.List$1<any>, arg2: number): TProducer} | null, resultProducer: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): Kusto.Language.Parsing.ParseResult$1<TProducer>} | null): RuleParser$2<TInput,TProducer>;
        }
    }
    var RuleParser$2: RuleParser$2Func;

    /**
     * A parser with result based parsing implemented over output-list based parsing.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Parsing.ListPrimaryParser$2
     * @augments Kusto.Language.Parsing.Parser$2
     */
    interface ListPrimaryParser$2<TInput,TOutput> extends Kusto.Language.Parsing.Parser$2<TInput,TOutput> {
        Parse$1(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
    }
    interface ListPrimaryParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: ListPrimaryParser$2<TInput,TOutput>;
            new (): ListPrimaryParser$2<TInput,TOutput>;
        }
    }
    var ListPrimaryParser$2: ListPrimaryParser$2Func;

    interface BestParser$2<TInput,TOutput> extends Kusto.Language.Parsing.Parser$2<TInput,TOutput> {
        Parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$2<TInput,TOutput>> | null;
        IsBetter: {(arg1: TOutput, arg2: TOutput): boolean} | null;
        IsAlternation: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse$1(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): Kusto.Language.Parsing.ParseResult$1<TOutput>;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface BestParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: BestParser$2<TInput,TOutput>;
            new (parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$2<TInput,TOutput>> | null, fnIsBetter: {(arg1: TOutput, arg2: TOutput): boolean} | null): BestParser$2<TInput,TOutput>;
        }
    }
    var BestParser$2: BestParser$2Func;

    /**
     * A parser that succeeds if it successfully consumes tokens.
     *
     * @public
     * @class Kusto.Language.Parsing.MatchParser$1
     * @augments Kusto.Language.Parsing.Parser$1
     */
    interface MatchParser$1<TInput> extends Kusto.Language.Parsing.Parser$1<TInput> {
        Consumer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number): number} | null;
        IsMatch: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
    }
    interface MatchParser$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: MatchParser$1<TInput>;
            ctor: {
                new (consumer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number): number} | null): MatchParser$1<TInput>
            };
            $ctor1: {
                new (predicate: {(arg: TInput): boolean} | null): MatchParser$1<TInput>
            };
        }
    }
    var MatchParser$1: MatchParser$1Func;

    interface SequenceParser$1<TInput> extends Kusto.Language.Parsing.Parser$1<TInput> {
        Parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null;
        IsSequence: boolean;
        ChildParserCount: number;
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        Parse(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        Scan(source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    interface SequenceParser$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: SequenceParser$1<TInput>;
            new (parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null): SequenceParser$1<TInput>;
        }
    }
    var SequenceParser$1: SequenceParser$1Func;

    interface CommentFacts {
    }
    interface CommentFactsFunc extends Function {
        prototype: CommentFacts;
        new (): CommentFacts;
        /**
         * Gets the text of the comments in the text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommentFacts
         * @memberof Kusto.Language.Parsing.CommentFacts
         * @param   {string}                                        text
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetCommentTexts(text: string | null): System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * True if the line at the given line start appears to be a comment line.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommentFacts
         * @memberof Kusto.Language.Parsing.CommentFacts
         * @param   {string}     text         
         * @param   {number}     lineStart
         * @return  {boolean}
         */
        IsCommentLine(text: string | null, lineStart?: number): boolean;
        /**
         * Gets the text of the comment for a comment line.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommentFacts
         * @memberof Kusto.Language.Parsing.CommentFacts
         * @param   {string}    text         
         * @param   {number}    lineStart
         * @return  {string}
         */
        GetCommentLineText(text: string | null, lineStart?: number): string | null;
        /**
         * True if the text at the given position appears to be the start of a Kusto comment.
         *
         * @static
         * @private
         * @this Kusto.Language.Parsing.CommentFacts
         * @memberof Kusto.Language.Parsing.CommentFacts
         * @param   {string}     text        
         * @param   {number}     position
         * @return  {boolean}
         */
        /**
         * Trims the leading and trailing comment and whitespace lines from the text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommentFacts
         * @memberof Kusto.Language.Parsing.CommentFacts
         * @param   {string}    text
         * @return  {string}
         */
        TrimCommentAndWhitespaceLines(text: string | null): string | null;
    }
    var CommentFacts: CommentFactsFunc;

    /**
     * All predefined rules used by command grammar parsers
     *
     * @public
     * @class Kusto.Language.Parsing.PredefinedRuleParsers
     */
    interface PredefinedRuleParsers {
        Value: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        StringLiteral: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        BracketedStringLiteral: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        RawGuidLiteral: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        GuidLiteral: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        AnyGuidLiteralOrString: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        Type: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        NameDeclaration: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        QualifiedNameDeclaration: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        WildcardedNameDeclaration: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        QualifiedWildcardedNameDeclaration: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        ColumnNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        TableNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        ExternalTableNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        MaterializedViewNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        FunctionNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        EntityGroupNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        DatabaseNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        ClusterNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        GraphModelNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        GraphSnapshotNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        GraphModelSnapshotNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        DatabaseOrTableNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        DatabaseOrTableOrColumnNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        TableOrColumnNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        DatabaseTableNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        DatabaseTableColumnNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        TableColumnNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        DatabaseExternalTableNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        DatabaseMaterializedViewNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        DatabaseFunctionNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        DatabaseEntityGroupNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        FunctionDeclaration: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        FunctionBody: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        QueryInput: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        ScriptInput: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        InputText: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        BracketedInputText: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        MissingStringLiteral: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null;
        MissingValue: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null;
        MissingType: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null;
        MissingNameReference: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null;
        MissingNameDeclaration: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null;
        MissingFunctionDeclaration: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null;
        MissingFunctionBody: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null;
        MissingExpression: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null;
        MissingStatement: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null;
        MissingInputText: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null;
    }
    interface PredefinedRuleParsersFunc extends Function {
        prototype: PredefinedRuleParsers;
        new (queryParser: Kusto.Language.Parsing.QueryGrammar | null, queryInput: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null, scriptInput: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null): PredefinedRuleParsers;
    }
    var PredefinedRuleParsers: PredefinedRuleParsersFunc;

    /**
     * Parsers for the Kusto query grammar.
     *
     * @public
     * @class Kusto.Language.Parsing.QueryGrammar
     */
    interface QueryGrammar {
        QueryBlock: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.QueryBlock> | null;
        Statement: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Statement> | null;
        Directive: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Directive> | null;
        StatementList: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Statement>>> | null;
        FunctionBody: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.FunctionBody> | null;
        FunctionParameters: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.FunctionParameters> | null;
        QueryOperator: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.QueryOperator> | null;
        PipeExpression: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Expression> | null;
        PipeSubExpression: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Expression> | null;
        MacroExpandSubQuery: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Statement>>> | null;
        FollowingPipeElementExpression: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.QueryOperator> | null;
        Expression: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Expression> | null;
        NamedExpression: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Expression> | null;
        UnnamedExpression: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Expression> | null;
        SimpleNameDeclaration: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.NameDeclaration> | null;
        SimpleNameDeclarationExpression: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Expression> | null;
        BracketedNameDeclaration: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.NameDeclaration> | null;
        IdentifierName: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Name> | null;
        BracketedName: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Name> | null;
        BracedName: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Name> | null;
        ParamTypeExtended: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.TypeExpression> | null;
        SchemaType: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SchemaTypeExpression> | null;
        SimpleNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Expression> | null;
        WildcardedNameReference: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Expression> | null;
        WildcardedIdentifier: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        Literal: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Expression> | null;
        StringLiteral: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Expression> | null;
        JsonValue: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Expression> | null;
        LiteralList: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>>> | null;
        SkippedTokens: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SkippedTokens> | null;
        /**
         * Constructs the grammar as a Parser
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryGrammar
         * @memberof Kusto.Language.Parsing.QueryGrammar
         * @param   {Kusto.Language.ParseOptions}    options
         * @return  {void}
         */
    }
    interface QueryGrammarFunc extends Function {
        prototype: QueryGrammar;
        CachedGrammar: Kusto.Language.Parsing.QueryGrammar.CachedGrammarFunc;
        StringOperatorMap: System.Collections.Generic.Dictionary$2<Kusto.Language.Syntax.SyntaxKind,Kusto.Language.Syntax.SyntaxKind> | null;
        /**
         * Gets the {@link } associated with the specified {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.QueryGrammar
         * @memberof Kusto.Language.Parsing.QueryGrammar
         * @param   {Kusto.Language.GlobalState}             globals
         * @return  {Kusto.Language.Parsing.QueryGrammar}
         */
        From(globals: Kusto.Language.GlobalState | null): Kusto.Language.Parsing.QueryGrammar | null;
        CreateMissingNameDeclaration(source?: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start?: number): Kusto.Language.Syntax.NameDeclaration | null;
        CreateMissingNameDeclarationExpression(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingNameReference(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingNameToken(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.SyntaxToken | null;
        CreateMissingExpression(source?: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start?: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingNamedExpression(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.NamedExpression | null;
        CreateMissingScanAssignment(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.ScanAssignment | null;
        CreateMissingValue(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingType(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.TypeExpression | null;
        CreateMissingLongLiteral(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingRealLiteral(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingStringLiteral(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingBooleanLiteral(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingTypeOfLiteral(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingJsonValue(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingJsonPair(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.JsonPair | null;
        CreateMissingJoinOnClause(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.JoinConditionClause | null;
        CreateMissingFunctionCall(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.FunctionCallExpression | null;
        CreateMissingFunctionCallExpression(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingSchemaType(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.SchemaTypeExpression | null;
        CreateMissingRowSchema(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.RowSchema | null;
        CreateMissingInlineExternalTableKindClause(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.InlineExternalTableKindClause | null;
        CreateMissingInlineExternalTableDataFormatClause(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.InlineExternalTableDataFormatClause | null;
        CreateMissingInlineExternalTableConnectionStringsClause(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.InlineExternalTableConnectionStringsClause | null;
        CreateMissingPathFormatTokens(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.InlineExternalTablePathFormatPartitionColumnReference | null;
        CreateMissingPartitionColumnDeclaration(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.PartitionColumnDeclaration | null;
        CreateMissingEvaluateRowSchema(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.EvaluateRowSchema | null;
        CreateMissingQueryOperator(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.QueryOperator | null;
        CreateMissingQueryOperatorExpression(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Expression | null;
        CreateMissingMakeSeriesExpression(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.MakeSeriesExpression | null;
        CreateMissingMvExpandExpression(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.MvExpandExpression | null;
        CreateMissingMvApplyExpression(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.MvApplyExpression | null;
        CreateMissingMvApplySubqueryExpression(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.MvApplySubqueryExpression | null;
        CreateMissingForkExpression(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.ForkExpression | null;
        CreateMissingPartitionOperand(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.PartitionOperand | null;
        CreateMissingStatement(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.Statement | null;
        CreateMissingStatementElement(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Statement> | null;
        CreateMissingNameAndTypeDeclaration(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.NameAndTypeDeclaration | null;
        CreateMissingFunctionParameter(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.FunctionParameter | null;
        CreateMissingNamedParameter(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.NamedParameter | null;
        CreateMissingFunctionDeclaration(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number): Kusto.Language.Syntax.FunctionDeclaration | null;
        CreateMissingTokenLiteral(tokens: System.Collections.Generic.IReadOnlyList$1<string> | null): {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.Expression} | null;
        CreateMissingTokenLiteral$1(tokens: string[] | null): {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.Expression} | null;
        CreateMissingMaterializedViewCombineBaseClause(source?: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start?: number): Kusto.Language.Syntax.MaterializedViewCombineClause | null;
        CreateMissingMaterializedViewCombineDeltaClause(source?: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start?: number): Kusto.Language.Syntax.MaterializedViewCombineClause | null;
        CreateMissingMaterializedViewCombineAggregatesClause(source?: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start?: number): Kusto.Language.Syntax.MaterializedViewCombineClause | null;
        CreateMissingMaterializedViewCombineNameClause(source?: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start?: number): Kusto.Language.Syntax.MaterializedViewCombineNameClause | null;
    }
    var QueryGrammar: QueryGrammarFunc;
    module QueryGrammar {
        interface CachedGrammar {
            Grammar: Kusto.Language.Parsing.QueryGrammar | null;
            Options: Kusto.Language.ParseOptions | null;
        }
        interface CachedGrammarFunc extends Function {
            prototype: CachedGrammar;
            new (grammar: Kusto.Language.Parsing.QueryGrammar | null, options: Kusto.Language.ParseOptions | null): CachedGrammar;
        }
    }

    interface QueryParser {
        /**
         * Parse using fnParse unless max depth has been exceeded then safe parse fnGrammar.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {Function}       TResult      
         * @param   {System.Func}    fnParse      
         * @param   {System.Func}    fnGrammar
         * @return  {TResult}
         */
        /**
         * Gets the reset point for the current input position.
         *
         * @instance
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {number}
         */
        /**
         * Resets the parser to the reset point.
         *
         * @instance
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {number}    resetPoint
         * @return  {void}
         */
        /**
         * Returns the best result of the set of parsers
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {Function}                                      TElement    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    parsers
         * @return  {TElement}
         */
        /**
         * Invokes the parser, but limits the amount of tokens it can consume.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {Function}       TSyntax     
         * @param   {number}         limit       
         * @param   {System.Func}    fnParser
         * @return  {TSyntax}
         */
        /**
         * Returns the next {@link }
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Parsing.LexicalToken}
         */
        /**
         * Returns the next {@link }
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {number}                                 offset
         * @return  {Kusto.Language.Parsing.LexicalToken}
         */
        /**
         * Returns the next {@link } as a {@link },
         or null if there are no more tokens.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        /**
         * Returns the next {@link } if it matches the kind or null.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {Kusto.Language.Syntax.SyntaxKind}     kind
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        /**
         * Returns the next {@link } if it matches one of the kinds or null.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {System.Collections.Generic.IReadOnlyList$1}    kinds
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        /**
         * Parses one or more adjacent lexical tokens that together matches the text into a single token,
         or returns null.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {string}                               text      
         * @param   {?Kusto.Language.Syntax.SyntaxKind}    asKind
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        /**
         * Converts the next count adjacent tokens into a single token
         or returns null.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {number}                               count     
         * @param   {?Kusto.Language.Syntax.SyntaxKind}    asKind
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        /**
         * Returns the next {@link } if it matches the kind or a missing version of that token kind.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {Kusto.Language.Syntax.SyntaxKind}     kind
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        /**
         * Parses one or more adjacent lexical tokens that together matches the text into a single token,
         or returns a missing token.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {string}                               text    
         * @param   {Kusto.Language.Syntax.SyntaxKind}     kind
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        /**
         * Scans one or more adjacent lexical tokens that together matches the text.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {string}    text      
         * @param   {number}    offset
         * @return  {number}
         */
        /**
         * Scans one or more adjacent lexical tokens that together matches the one of the texts.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {System.Collections.Generic.IReadOnlyList$1}    texts     
         * @param   {number}                                        offset
         * @return  {number}
         */
        /**
         * Includes bracketed names, identifiers and limited keywords-as-identifiers
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Syntax.NameReference}
         */
        /**
         * Includes bracketed names, identifiers and extended keywords-as-identifiers
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Syntax.NameReference}
         */
        /**
         * Includes bracketed names, identifiers and limited keywords-as-identifiers
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Syntax.NameDeclaration}
         */
        /**
         * Includes bracketed names, identifiers and extended keywords-as-identifiers
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Syntax.NameDeclaration}
         */
        /**
         * Scan a braced name (client parameter) and returns amount of tokens it consumes.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {number}    offset
         * @return  {number}
         */
        /**
         * Parses a schema delaration:  (name: type, name: type, ...)
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Syntax.SchemaTypeExpression}
         */
        /**
         * Parses a multi-part schema declaration:  (name: type, name: type, ...)
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Syntax.SchemaTypeExpression}
         */
        /**
         * Parses a tabular row schema
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {boolean}                            oneOrMore
         * @return  {Kusto.Language.Syntax.RowSchema}
         */
        /**
         * Query operators that can occur at the start of a query
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Syntax.QueryOperator}
         */
        /**
         * Query operators that occur after a pipe
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Syntax.QueryOperator}
         */
        /**
         * Returns true if it looks like it is a query operator
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {boolean}
         */
        /**
         * Parses function parameter list:  (name: type [= value], name: type [= value], ...)
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Syntax.FunctionParameters}
         */
        /**
         * Returns true if it looks like it is a statement
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {boolean}
         */
        /**
         * Parses and entire query
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @return  {Kusto.Language.Syntax.QueryBlock}
         */
    }
    interface QueryParserFunc extends Function {
        prototype: QueryParser;
        ParseExpression(tokens: Kusto.Language.Parsing.LexicalToken[] | null, start?: number, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.Expression | null;
        ParseExpression$1(text: string | null, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.Expression | null;
        ParseQuery(tokens: Kusto.Language.Parsing.LexicalToken[] | null, start?: number, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.QueryBlock | null;
        ParseQuery$1(text: string | null, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.QueryBlock | null;
        ParseFunctionParameters(tokens: Kusto.Language.Parsing.LexicalToken[] | null, start?: number, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.FunctionParameters | null;
        ParseFunctionParameters$1(text: string | null, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.FunctionParameters | null;
        ParseFunctionParameter(tokens: Kusto.Language.Parsing.LexicalToken[] | null, start?: number, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.FunctionParameter | null;
        ParseFunctionParameter$1(text: string | null, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.FunctionParameter | null;
        ParseFunctionBody(tokens: Kusto.Language.Parsing.LexicalToken[] | null, start?: number, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.FunctionBody | null;
        ParseFunctionBody$1(text: string | null, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.FunctionBody | null;
        ParseEntityPath(tokens: Kusto.Language.Parsing.LexicalToken[] | null, start?: number, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.Expression | null;
        ParseEntityPath$1(text: string | null, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.Expression | null;
        ParseEntityGroup(tokens: Kusto.Language.Parsing.LexicalToken[] | null, start?: number, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.Expression | null;
        ParseEntityGroup$1(text: string | null, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.Expression | null;
        ParseLiteral(tokens: Kusto.Language.Parsing.LexicalToken[] | null, start?: number, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.Expression | null;
        ParseLiteral$1(text: string | null, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.Expression | null;
        ParseRowSchema(tokens: Kusto.Language.Parsing.LexicalToken[] | null, start?: number, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.RowSchema | null;
        ParseRowSchema$1(text: string | null, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Syntax.RowSchema | null;
        /**
         * Returns the next {@link } if it matches one of the kinds or a missing version of that token kind.
         *
         * @static
         * @private
         * @this Kusto.Language.Parsing.QueryParser
         * @memberof Kusto.Language.Parsing.QueryParser
         * @param   {System.Collections.Generic.IReadOnlyList$1}    kinds
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
    }
    var QueryParser: QueryParserFunc;

    /**
     * A parser that is allowed on the right side of an Apply.
     *
     * @public
     * @class Kusto.Language.Parsing.RightParser$2
     */
    interface RightParser$2<TInput,TOutput> {
        /**
         * Creates a copy of this {@link } with the tag specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.RightParser$2
         * @memberof Kusto.Language.Parsing.RightParser$2
         * @param   {string}                                  tag
         * @return  {Kusto.Language.Parsing.RightParser$2}
         */
        WithTag(tag: string | null): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
        /**
         * Creates a copy of this {@link } with the annotations specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.RightParser$2
         * @memberof Kusto.Language.Parsing.RightParser$2
         * @param   {System.Collections.Generic.IEnumerable$1}    annotations
         * @return  {Kusto.Language.Parsing.RightParser$2}
         */
        WithAnnotations(annotations: System.Collections.Generic.IEnumerable$1<any> | null): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
        /**
         * Creates a copy of this {@link } with the IsHidden property specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.RightParser$2
         * @memberof Kusto.Language.Parsing.RightParser$2
         * @param   {boolean}                                 isHidden
         * @return  {Kusto.Language.Parsing.RightParser$2}
         */
        WithIsHidden(isHidden: boolean): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
        /**
         * Creates a copy of this {@link } with the IsHidden property set to true.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.RightParser$2
         * @memberof Kusto.Language.Parsing.RightParser$2
         * @return  {Kusto.Language.Parsing.RightParser$2}
         */
        Hide(): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
        $clone(to: Kusto.Language.Parsing.RightParser$2<TInput,TOutput>): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
    }
    interface RightParser$2Func extends Function {
        <TInput, TOutput>($TInput: Bridge.TypeRef<TInput>, $TOutput: Bridge.TypeRef<TOutput>): {
            prototype: RightParser$2<TInput,TOutput>;
            new (): RightParser$2<TInput,TOutput>;
            ctor: {
                new (): RightParser$2<TInput,TOutput>
            };
        }
    }
    var RightParser$2: RightParser$2Func;

    interface SafeParser {
    }
    interface SafeParserFunc extends Function {
        prototype: SafeParser;
        ParserPool$1: Kusto.Language.Parsing.SafeParser.ParserPool$1Func;
        new (): SafeParser;
        ParseSafe<TInput>(TInput: {prototype: TInput}, parser: Kusto.Language.Parsing.Parser$1<TInput> | null, source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
    }
    var SafeParser: SafeParserFunc;
    module SafeParser {
        interface ParserPool$1<TInput> {
        }
        interface ParserPool$1Func extends Function {
            <TInput>($TInput: Bridge.TypeRef<TInput>): {
                prototype: ParserPool$1<TInput>;
                new (): ParserPool$1<TInput>;
                Pool: Kusto.Language.Utils.ObjectPool$1<Kusto.Language.Parsing.StackSafeParser$1<TInput>> | null;
            }
        }
    }

    interface SafeScanner {
    }
    interface SafeScannerFunc extends Function {
        prototype: SafeScanner;
        ScannerPool$1: Kusto.Language.Parsing.SafeScanner.ScannerPool$1Func;
        new (): SafeScanner;
        ScanSafe<TInput>(TInput: {prototype: TInput}, parser: Kusto.Language.Parsing.Parser$1<TInput> | null, source: Kusto.Language.Parsing.Source$1<TInput> | null, start: number): number;
    }
    var SafeScanner: SafeScannerFunc;
    module SafeScanner {
        interface ScannerPool$1<TInput> {
        }
        interface ScannerPool$1Func extends Function {
            <TInput>($TInput: Bridge.TypeRef<TInput>): {
                prototype: ScannerPool$1<TInput>;
                new (): ScannerPool$1<TInput>;
                Pool: Kusto.Language.Utils.ObjectPool$1<Kusto.Language.Parsing.StackSafeScanner$1<TInput>> | null;
            }
        }
    }

    interface ScannerExtensions {
    }
    interface ScannerExtensionsFunc extends Function {
        prototype: ScannerExtensions;
        ReuseableTextSource: Kusto.Language.Parsing.ScannerExtensions.ReuseableTextSourceFunc;
        new (): ScannerExtensions;
        /**
         * Determines if the scanner matches the specified text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.ScannerExtensions
         * @memberof Kusto.Language.Parsing.ScannerExtensions
         * @param   {Kusto.Language.Parsing.Parser$1}    scanner    
         * @param   {string}                             text
         * @return  {boolean}
         */
        Matches(scanner: Kusto.Language.Parsing.Parser$1<number> | null, text: string | null): boolean;
        /**
         * Determines if the scanner matches the specified text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.ScannerExtensions
         * @memberof Kusto.Language.Parsing.ScannerExtensions
         * @param   {Kusto.Language.Parsing.Parser$1}    scanner    
         * @param   {string}                             text       
         * @param   {number}                             offset     
         * @param   {number}                             length
         * @return  {boolean}
         */
        Matches$1(scanner: Kusto.Language.Parsing.Parser$1<number> | null, text: string | null, offset: number, length: number): boolean;
    }
    var ScannerExtensions: ScannerExtensionsFunc;
    module ScannerExtensions {
        /**
         * A source of text for syntax parsing
         *
         * @private
         * @class Kusto.Language.Parsing.ScannerExtensions.ReuseableTextSource
         * @augments Kusto.Language.Parsing.Source$1
         */
        interface ReuseableTextSource extends Kusto.Language.Parsing.Source$1<number> {
            Init$1(source: string | null, offset: number, length: number): void;
            Init(source: string | null): void;
            Clear(): void;
            Peek(n?: number): number;
            IsEnd(n?: number): boolean;
        }
        interface ReuseableTextSourceFunc extends Function {
            prototype: ReuseableTextSource;
            new (): ReuseableTextSource;
        }
    }

    interface ScriptFacts {
    }
    interface ScriptFactsFunc extends Function {
        prototype: ScriptFacts;
        new (): ScriptFacts;
        /**
         * Produces a list of block starts for a Kusto multi-block document.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.ScriptFacts
         * @memberof Kusto.Language.Parsing.ScriptFacts
         * @param   {string}                                        text          
         * @param   {System.Collections.Generic.IReadOnlyList$1}    lineStarts
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetKustoBlockStarts(text: string | null, lineStarts: System.Collections.Generic.IReadOnlyList$1<number> | null): System.Collections.Generic.IReadOnlyList$1<number> | null;
        /**
         * Produces a list of block starts by separating blocks by blank lines.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.ScriptFacts
         * @memberof Kusto.Language.Parsing.ScriptFacts
         * @param   {string}                                        text          
         * @param   {System.Collections.Generic.IReadOnlyList$1}    lineStarts
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetLineSeparatedBlockStarts(text: string | null, lineStarts: System.Collections.Generic.IReadOnlyList$1<number> | null): System.Collections.Generic.IReadOnlyList$1<number> | null;
        /**
         * Removes any duplicates from list of block starts.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.ScriptFacts
         * @memberof Kusto.Language.Parsing.ScriptFacts
         * @param   {System.Collections.Generic.IEnumerable$1}      blockStarts
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        RemoveDuplicateBlockStarts(blockStarts: System.Collections.Generic.IEnumerable$1<number> | null): System.Collections.Generic.IReadOnlyList$1<number> | null;
        /**
         * Removes block starts that cannot appear in a kusto multi-block document.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.ScriptFacts
         * @memberof Kusto.Language.Parsing.ScriptFacts
         * @param   {System.Collections.Generic.IReadOnlyList$1}    blockStarts    
         * @param   {string}                                        text
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        RemoveInvalidKustoBlockStarts(blockStarts: System.Collections.Generic.IReadOnlyList$1<number> | null, text: string | null): System.Collections.Generic.IReadOnlyList$1<number> | null;
        /**
         * Removes block starts that occur in invalid ranges.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.ScriptFacts
         * @memberof Kusto.Language.Parsing.ScriptFacts
         * @param   {System.Collections.Generic.IReadOnlyList$1}    blockStarts      
         * @param   {System.Collections.Generic.IReadOnlyList$1}    invalidRanges
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        RemoveInvalidBlockStarts(blockStarts: System.Collections.Generic.IReadOnlyList$1<number> | null, invalidRanges: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextRange> | null): System.Collections.Generic.IReadOnlyList$1<number> | null;
        /**
         * Produces a list of ordered invalid ranges where blocks may not start in a Kusto multi-block document.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.ScriptFacts
         * @memberof Kusto.Language.Parsing.ScriptFacts
         * @param   {string}                                        text
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetInvalidKustoBlockStartRanges(text: string | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.TextRange> | null;
    }
    var ScriptFacts: ScriptFactsFunc;

    interface SourceCache {
        /**
         * Gets or creates a new instance of {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.SourceCache
         * @memberof Kusto.Language.Parsing.SourceCache
         * @param   {Function}    T
         * @return  {T}
         */
        GetOrCreate<T>(T: {prototype: T}): T;
        /**
         * Gets or creates a new instance of {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.SourceCache
         * @memberof Kusto.Language.Parsing.SourceCache
         * @param   {Function}       T          
         * @param   {System.Func}    creator
         * @return  {T}
         */
        GetOrCreate$1<T>(T: {prototype: T}, creator: {(): T} | null): T;
        /**
         * Gets the value associated with the type or returns false.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.SourceCache
         * @memberof Kusto.Language.Parsing.SourceCache
         * @param   {Function}    T        
         * @param   {T}           value
         * @return  {boolean}
         */
        TryGetValue<T>(T: {prototype: T}, value: {v: T}): boolean;
    }
    interface SourceCacheFunc extends Function {
        prototype: SourceCache;
        new (): SourceCache;
    }
    var SourceCache: SourceCacheFunc;

    /**
     * Parser and Scanners for working with Kusto syntax.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Parsing.SyntaxParsers
     */
    interface SyntaxParsers {
    }
    interface SyntaxParsersFunc extends Function {
        prototype: SyntaxParsers;
        new (): SyntaxParsers;
        /**
         * A parser that consumes the next {@link }, producing the corresponding {@link }.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @type Kusto.Language.Parsing.Parser$2
         */
        AnyToken: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next {@link } as long as it does not have the kind {@link }, producing the corresponding {@link }.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @type Kusto.Language.Parsing.Parser$2
         */
        AnyTokenButEnd: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes only the end of text token.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @type Kusto.Language.Parsing.Parser$1
         */
        EndOfText: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null;
        /**
         * Determines if a typical comma separated list has ended
         *
         * @static
         * @public
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @type Kusto.Language.Parsing.Parser$1
         */
        EndOfCommaList: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null;
        /**
         * Creates a missing {@link } for a token that was expected to have the specified {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Syntax.SyntaxKind}     kind          
         * @param   {Kusto.Language.Diagnostic}            diagnostic
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        CreateMissingToken(kind: Kusto.Language.Syntax.SyntaxKind, diagnostic?: Kusto.Language.Diagnostic | null): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Creates a missing {@link } for a token that was expected to have the specified {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {System.Collections.Generic.IReadOnlyList$1}    kinds
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        CreateMissingToken$1(kinds: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxKind> | null): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Creates a missing {@link } for a token that was expected to have the specified text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {string}                               text          
         * @param   {Kusto.Language.Diagnostic}            diagnostic
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        CreateMissingToken$3(text: string | null, diagnostic?: Kusto.Language.Diagnostic | null): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Creates a missing {@link } for a token that was expected to have one of the specified texts.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {System.Collections.Generic.IReadOnlyList$1}    texts
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        CreateMissingToken$2(texts: System.Collections.Generic.IReadOnlyList$1<string> | null): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Gets the default tag to assign a token parser, based on the token's text.
         *
         * @static
         * @private
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {string}    text
         * @return  {string}
         */
        /**
         * Gets the default tag to assign a token parser, based on the token's kind.
         *
         * @static
         * @private
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Syntax.SyntaxKind}    kind
         * @return  {string}
         */
        /**
         * A parser that consumes the next next {@link } if it has the specified {@link }, producing a corresponding {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Syntax.SyntaxKind}            kind        
         * @param   {?Kusto.Language.Editor.CompletionKind}       ckind       
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority    
         * @param   {string}                                      ctext
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Token$1(kind: Kusto.Language.Syntax.SyntaxKind, ckind?: Kusto.Language.Editor.CompletionKind | null, priority?: Kusto.Language.Editor.CompletionPriority, ctext?: string | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next next {@link } if it has the specified {@link }, producing a corresponding {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Syntax.SyntaxKind}                kind     
         * @param   {Array.<Kusto.Language.Editor.CompletionItem>}    items
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Token(kind: Kusto.Language.Syntax.SyntaxKind, items: Kusto.Language.Editor.CompletionItem[] | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next next {@link } if it has one of the specified {@link }s, producing a corresponding {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {System.Collections.Generic.IReadOnlyList$1}    kinds          
         * @param   {?Kusto.Language.Editor.CompletionKind}         defaultKind    
         * @param   {Kusto.Language.Editor.CompletionPriority}      priority
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Token$2(kinds: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxKind> | null, defaultKind?: Kusto.Language.Editor.CompletionKind | null, priority?: Kusto.Language.Editor.CompletionPriority): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has the specified text, producing a single {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {string}                                      text        
         * @param   {?Kusto.Language.Syntax.SyntaxKind}           asKind      
         * @param   {?Kusto.Language.Editor.CompletionKind}       ckind       
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority    
         * @param   {string}                                      ctext
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Token$5(text: string | null, asKind?: Kusto.Language.Syntax.SyntaxKind | null, ckind?: Kusto.Language.Editor.CompletionKind | null, priority?: Kusto.Language.Editor.CompletionPriority, ctext?: string | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has the specified text, producing a single {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {string}                                      text        
         * @param   {Kusto.Language.Editor.CompletionKind}        ckind       
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority    
         * @param   {string}                                      ctext
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Token$4(text: string | null, ckind: Kusto.Language.Editor.CompletionKind, priority?: Kusto.Language.Editor.CompletionPriority, ctext?: string | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has one of the specified texts, producing a single {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {System.Collections.Generic.IReadOnlyList$1}    texts          
         * @param   {?Kusto.Language.Editor.CompletionKind}         defaultKind    
         * @param   {Kusto.Language.Editor.CompletionPriority}      priority
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Token$3(texts: System.Collections.Generic.IReadOnlyList$1<string> | null, defaultKind?: Kusto.Language.Editor.CompletionKind | null, priority?: Kusto.Language.Editor.CompletionPriority): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * Creates a new version of the parser with the ComplationItem annotation set.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                                        TElement    
         * @param   {Kusto.Language.Parsing.Parser$2}                 parser      
         * @param   {Array.<Kusto.Language.Editor.CompletionItem>}    items
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        WithCompletion<TElement>(TElement: {prototype: TElement}, parser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TElement> | null, items: Kusto.Language.Editor.CompletionItem[] | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TElement> | null;
        /**
         * Creates a new version of the parser with the CompletionHint annotation set.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                                TElement    
         * @param   {Kusto.Language.Parsing.Parser$2}         parser      
         * @param   {Kusto.Language.Editor.CompletionHint}    hint
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        WithCompletionHint<TElement>(TElement: {prototype: TElement}, parser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TElement> | null, hint: Kusto.Language.Editor.CompletionHint): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TElement> | null;
        /**
         * Matches one or more lexical tokens to the corresponding text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Parsing.Source$1}    source    
         * @param   {number}                             start     
         * @param   {string}                             text
         * @return  {number}
         */
        MatchesText(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number, text: string | null): number;
        /**
         * Create a {@link } from one or more adjacent {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Parsing.Source$1}      source    
         * @param   {number}                               start     
         * @param   {number}                               length    
         * @param   {?Kusto.Language.Syntax.SyntaxKind}    asKind
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        ProduceSyntaxToken(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number, length: number, asKind?: Kusto.Language.Syntax.SyntaxKind | null): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Create a {@link } from one or more adjacent {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Parsing.Source$1}      source    
         * @param   {number}                               start     
         * @param   {number}                               length    
         * @param   {string}                               text      
         * @param   {?Kusto.Language.Syntax.SyntaxKind}    asKind
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        ProduceSyntaxToken$1(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number, length: number, text: string | null, asKind?: Kusto.Language.Syntax.SyntaxKind | null): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Gets the text of a series of tokens.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Parsing.Source$1}    source                
         * @param   {number}                             start                 
         * @param   {number}                             length                
         * @param   {boolean}                            includeInnerTrivia
         * @return  {string}
         */
        GetCombinedTokenText(source: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken> | null, start: number, length: number, includeInnerTrivia?: boolean): string | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) that combined has the specified text, producing a single {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {string}                               text      
         * @param   {?Kusto.Language.Syntax.SyntaxKind}    asKind
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        MatchText(text: string | null, asKind?: Kusto.Language.Syntax.SyntaxKind | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has the specified text, producing a single {@link }.
         It does not show up in intellisense completion lists.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {string}                               text      
         * @param   {?Kusto.Language.Syntax.SyntaxKind}    asKind
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        HiddenToken$2(text: string | null, asKind?: Kusto.Language.Syntax.SyntaxKind | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next next {@link } if it has the specified {@link }, producing a corresponding {@link }.
         It does not show up in intellisense completion lists.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Syntax.SyntaxKind}    tokenKind
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        HiddenToken(tokenKind: Kusto.Language.Syntax.SyntaxKind): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has one of the specified texts, producing a single {@link }.
         It does not show up in intellisense completion lists.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {System.Collections.Generic.IReadOnlyList$1}    texts
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        HiddenToken$1(texts: System.Collections.Generic.IReadOnlyList$1<string> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next {@link } if it has the specified {@link }, producing a corresponding {@link } or an equivalent missing token otherwise.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Syntax.SyntaxKind}            kind        
         * @param   {?Kusto.Language.Editor.CompletionKind}       ckind       
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority    
         * @param   {string}                                      ctext
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        RequiredToken$1(kind: Kusto.Language.Syntax.SyntaxKind, ckind?: Kusto.Language.Editor.CompletionKind | null, priority?: Kusto.Language.Editor.CompletionPriority, ctext?: string | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next {@link } if it has the specified {@link }, producing a corresponding {@link } or an equivalent missing token otherwise.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Syntax.SyntaxKind}        kind    
         * @param   {Kusto.Language.Editor.CompletionItem}    item
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        RequiredToken(kind: Kusto.Language.Syntax.SyntaxKind, item: Kusto.Language.Editor.CompletionItem | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next {@link } if it has one of the specified {@link }, producing a corresponding {@link } or an equivalent missing token otherwise.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {System.Collections.Generic.IReadOnlyList$1}    kinds       
         * @param   {?Kusto.Language.Editor.CompletionKind}         ckind       
         * @param   {Kusto.Language.Editor.CompletionPriority}      priority
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        RequiredToken$2(kinds: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxKind> | null, ckind?: Kusto.Language.Editor.CompletionKind | null, priority?: Kusto.Language.Editor.CompletionPriority): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has the specified text, producing a corresponding {@link } or an equivalent missing token otherwise.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {string}                                      text        
         * @param   {?Kusto.Language.Syntax.SyntaxKind}           asKind      
         * @param   {?Kusto.Language.Editor.CompletionKind}       ckind       
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority    
         * @param   {string}                                      ctext
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        RequiredToken$4(text: string | null, asKind?: Kusto.Language.Syntax.SyntaxKind | null, ckind?: Kusto.Language.Editor.CompletionKind | null, priority?: Kusto.Language.Editor.CompletionPriority, ctext?: string | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has one of the specified texts, producing a corresponding {@link } or an equivalent missing token otherwise.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {System.Collections.Generic.IReadOnlyList$1}    texts       
         * @param   {?Kusto.Language.Editor.CompletionKind}         ckind       
         * @param   {Kusto.Language.Editor.CompletionPriority}      priority
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        RequiredToken$3(texts: System.Collections.Generic.IReadOnlyList$1<string> | null, ckind?: Kusto.Language.Editor.CompletionKind | null, priority?: Kusto.Language.Editor.CompletionPriority): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * Gets the default {@link } for a token with the specified {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Syntax.SyntaxKind}            kind        
         * @param   {Kusto.Language.Editor.CompletionKind}        ckind       
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority    
         * @param   {string}                                      ctext
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        CreateCompletionItem(kind: Kusto.Language.Syntax.SyntaxKind, ckind: Kusto.Language.Editor.CompletionKind, priority: Kusto.Language.Editor.CompletionPriority, ctext?: string | null): Kusto.Language.Editor.CompletionItem | null;
        /**
         * Gets the default {@link } for a token with the specified text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {string}                                      text         
         * @param   {Kusto.Language.Editor.CompletionKind}        ckind        
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority     
         * @param   {string}                                      ctext        
         * @param   {string}                                      matchText
         * @return  {Kusto.Language.Editor.CompletionItem}
         */
        CreateCompletionItem$1(text: string | null, ckind: Kusto.Language.Editor.CompletionKind, priority: Kusto.Language.Editor.CompletionPriority, ctext?: string | null, matchText?: string | null): Kusto.Language.Editor.CompletionItem | null;
        /**
         * Gets the {@link } for the token text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {string}                                   text           
         * @param   {?Kusto.Language.Editor.CompletionKind}    defaultKind
         * @return  {Kusto.Language.Editor.CompletionKind}
         */
        GetCompletionKind$1(text: string | null, defaultKind?: Kusto.Language.Editor.CompletionKind | null): Kusto.Language.Editor.CompletionKind;
        /**
         * Gets the default {@link } for the token kind.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Syntax.SyntaxKind}         kind           
         * @param   {?Kusto.Language.Editor.CompletionKind}    defaultKind
         * @return  {Kusto.Language.Editor.CompletionKind}
         */
        GetCompletionKind(kind: Kusto.Language.Syntax.SyntaxKind, defaultKind?: Kusto.Language.Editor.CompletionKind | null): Kusto.Language.Editor.CompletionKind;
        /**
         * Gets the default {@link } for tokens with any of the specified {@link }.
         *
         * @static
         * @private
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {System.Collections.Generic.IEnumerable$1}    kinds          
         * @param   {?Kusto.Language.Editor.CompletionKind}       defaultKind    
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority
         * @return  {System.Collections.Generic.IEnumerable$1}
         */
        /**
         * Gets the default {@link } for tokens with any of the specified texts.
         *
         * @static
         * @private
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {System.Collections.Generic.IEnumerable$1}    texts          
         * @param   {?Kusto.Language.Editor.CompletionKind}       defaultKind    
         * @param   {Kusto.Language.Editor.CompletionPriority}    priority
         * @return  {System.Collections.Generic.IEnumerable$1}
         */
        /**
         * A parser that parses a {@link } of elements.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                           TElement            
         * @param   {Kusto.Language.Parsing.Parser$2}    elementParser       
         * @param   {System.Func}                        fnMissingElement    
         * @param   {boolean}                            oneOrMore
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        List<TElement>(TElement: {prototype: TElement}, elementParser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TElement> | null, fnMissingElement?: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): TElement} | null, oneOrMore?: boolean): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxList$1<TElement>> | null;
        /**
         * A parser that parses a {@link } of {@link }'s
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                            TElement                  
         * @param   {Kusto.Language.Parsing.Parser$2}     primaryElementParser      
         * @param   {Kusto.Language.Syntax.SyntaxKind}    separatorKind             
         * @param   {System.Func}                         fnMissingElement          
         * @param   {Kusto.Language.Parsing.Parser$1}     endOfList                 
         * @param   {boolean}                             oneOrMore                 
         * @param   {boolean}                             allowTrailingSeparator
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        SeparatedList$1<TElement>(TElement: {prototype: TElement}, primaryElementParser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TElement> | null, separatorKind: Kusto.Language.Syntax.SyntaxKind, fnMissingElement: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): TElement} | null, endOfList?: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, oneOrMore?: boolean, allowTrailingSeparator?: boolean): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<TElement>>> | null;
        /**
         * A parser that parses a {@link } of {@link }'s.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                            TElement                  
         * @param   {Kusto.Language.Parsing.Parser$2}     primaryElementParser      
         * @param   {Kusto.Language.Syntax.SyntaxKind}    separatorKind             
         * @param   {Kusto.Language.Parsing.Parser$2}     secondaryElementParser    
         * @param   {System.Func}                         fnMissingElement          
         * @param   {Kusto.Language.Parsing.Parser$1}     endOfList                 
         * @param   {boolean}                             oneOrMore                 
         * @param   {boolean}                             allowTrailingSeparator
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        SeparatedList<TElement>(TElement: {prototype: TElement}, primaryElementParser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TElement> | null, separatorKind: Kusto.Language.Syntax.SyntaxKind, secondaryElementParser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TElement> | null, fnMissingElement: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): TElement} | null, endOfList?: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, oneOrMore?: boolean, allowTrailingSeparator?: boolean): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<TElement>>> | null;
        /**
         * A parser that parses a typical comma separated {@link } of {@link }'s.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                                    TElement              
         * @param   {Kusto.Language.Parsing.Parser$2}             elementParser         
         * @param   {System.Func}                                 fnMissingElement      
         * @param   {boolean}                                     oneOrMore             
         * @param   {boolean}                                     allowTrailingComma    
         * @param   {System.Collections.Generic.IEnumerable$1}    endKinds
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        CommaList<TElement>(TElement: {prototype: TElement}, elementParser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TElement> | null, fnMissingElement: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): TElement} | null, oneOrMore?: boolean, allowTrailingComma?: boolean, endKinds?: System.Collections.Generic.IEnumerable$1<Kusto.Language.Syntax.SyntaxKind> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<TElement>>> | null;
        /**
         * A parser that parses a typical comma separated {@link } of {@link }'s.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                           TElement            
         * @param   {Kusto.Language.Parsing.Parser$2}    elementParser       
         * @param   {System.Func}                        fnMissingElement
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        OneOrMoreCommaList<TElement>(TElement: {prototype: TElement}, elementParser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TElement> | null, fnMissingElement: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): TElement} | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<TElement>>> | null;
        /**
         * Constructs a SyntaxList&lt;SeparatedElement&lt;TElement&gt;&gt; from a list of items and separators.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                                       TElement    
         * @param   {Array.<Kusto.Language.Syntax.SyntaxElement>}    elements
         * @return  {Kusto.Language.Syntax.SyntaxList$1}
         */
        MakeSeparatedList<TElement>(TElement: {prototype: TElement}, elements: Kusto.Language.Syntax.SyntaxElement[] | null): Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<TElement>> | null;
        /**
         * Constructs a SyntaxList&lt;SeparatedElement&lt;TElement&gt;&gt; from a list of items and separators.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                                      TElement    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    elements
         * @return  {Kusto.Language.Syntax.SyntaxList$1}
         */
        MakeSeparatedList$1<TElement>(TElement: {prototype: TElement}, elements: System.Collections.Generic.IReadOnlyList$1<any> | null): Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<TElement>> | null;
        /**
         * Repeatedly parses all matching items.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                                    TParser                  
         * @param   {Kusto.Language.Parsing.Parser$2}             parser                   
         * @param   {string}                                      text                     
         * @param   {boolean}                                     alwaysProduceEndToken
         * @return  {System.Collections.Generic.IEnumerable$1}
         */
        ParseAll$1<TParser>(TParser: {prototype: TParser}, parser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TParser> | null, text: string | null, alwaysProduceEndToken?: boolean): System.Collections.Generic.IEnumerable$1<TParser> | null;
        /**
         * Repeatedly parses all matching items.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                                      TParser    
         * @param   {Kusto.Language.Parsing.Parser$2}               parser     
         * @param   {System.Collections.Generic.IReadOnlyList$1}    tokens
         * @return  {System.Collections.Generic.IEnumerable$1}
         */
        ParseAll<TParser>(TParser: {prototype: TParser}, parser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TParser> | null, tokens: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.LexicalToken> | null): System.Collections.Generic.IEnumerable$1<TParser> | null;
        /**
         * Parses the first matching item.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                           TParser             
         * @param   {Kusto.Language.Parsing.Parser$2}    parser              
         * @param   {string}                             text                
         * @param   {boolean}                            alwaysProduceEOF
         * @return  {TParser}
         */
        ParseFirst<TParser>(TParser: {prototype: TParser}, parser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TParser> | null, text: string | null, alwaysProduceEOF?: boolean): TParser;
        /**
         * Parses the first matching item.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                                      TParser    
         * @param   {Kusto.Language.Parsing.Parser$2}               parser     
         * @param   {System.Collections.Generic.IReadOnlyList$1}    tokens
         * @return  {TParser}
         */
        ParseFirst$1<TParser>(TParser: {prototype: TParser}, parser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TParser> | null, tokens: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.LexicalToken> | null): TParser;
        /**
         * Scans the first matching item.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Kusto.Language.Parsing.Parser$1}    parser              
         * @param   {string}                             text                
         * @param   {boolean}                            alwaysProduceEOF
         * @return  {number}
         */
        ScanFirst(parser: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, text: string | null, alwaysProduceEOF?: boolean): number;
        /**
         * Adds examples of completions as annotations onto this grammar rule.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                                      TParser    
         * @param   {Kusto.Language.Parsing.Parser$2}               parser     
         * @param   {System.Collections.Generic.IReadOnlyList$1}    values
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Examples<TParser>(TParser: {prototype: TParser}, parser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TParser> | null, values: System.Collections.Generic.IReadOnlyList$1<string> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TParser> | null;
        /**
         * Adds examples of completions as annotations onto this grammar rule.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.SyntaxParsers
         * @memberof Kusto.Language.Parsing.SyntaxParsers
         * @param   {Function}                           TParser    
         * @param   {Kusto.Language.Parsing.Parser$2}    parser     
         * @param   {Array.<string>}                     values
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Examples$1<TParser>(TParser: {prototype: TParser}, parser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TParser> | null, values: string[] | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,TParser> | null;
    }
    var SyntaxParsers: SyntaxParsersFunc;

    /**
     * Facts about text.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Parsing.TextFacts
     */
    interface TextFacts {
    }
    interface TextFactsFunc extends Function {
        prototype: TextFacts;
        new (): TextFacts;
        IsWhitespace(ch: number): boolean;
        /**
         * True if the text is all whitespace.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}     text
         * @return  {boolean}
         */
        IsWhitespaceOnly(text: string | null): boolean;
        /**
         * True if the range of text is all whitespace.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}     text      
         * @param   {number}     start     
         * @param   {number}     length
         * @return  {boolean}
         */
        IsWhitespaceOnly$1(text: string | null, start: number, length: number): boolean;
        /**
         * True if the line starting at start position is only whitespace.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}     text     
         * @param   {number}     start
         * @return  {boolean}
         */
        IsWhitespaceLine(text: string | null, start: number): boolean;
        /**
         * Gets the contiguous whitespace in the text from the starting position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {string}
         */
        GetWhitespace(text: string | null, start: number): string | null;
        /**
         * Gets the count of contiguous whitespace in the text after the starting position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        GetWhitespaceCount(text: string | null, start: number): number;
        /**
         * Gets the count of continguous whitespace before the starting position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        GetWhitespaceCountBefore(text: string | null, start: number): number;
        IsLineBreakStart(ch: number): boolean;
        GetLineBreakLength(text: string | null, position: number): number;
        HasLineBreaks(text: string | null): boolean;
        /**
         * Gets the index of the start of the next line break or -1.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        GetNextLineBreakStart(text: string | null, start: number): number;
        /**
         * Gets the index of the end of the next line break or -1
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        GetNextLineBreakEnd(text: string | null, start: number): number;
        /**
         * Returns the position of end of the line containing the specified position.
         Does not include any line break characters.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text        
         * @param   {number}    position
         * @return  {number}
         */
        GetLineEnd(text: string | null, position: number): number;
        /**
         * Returns the position of the start of the line containing the specified position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text        
         * @param   {number}    position
         * @return  {number}
         */
        GetLineStart(text: string | null, position: number): number;
        /**
         * Gets the position of the end of the previous line given a position on the current line.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}          text               
         * @param   {number}          position           
         * @param   {System.Int32}    previousLineEnd
         * @return  {boolean}
         */
        TryGetPreviousLineEnd(text: string | null, position: number, previousLineEnd: {v: number}): boolean;
        /**
         * Gets the position of the start of the next line given a position on the current line.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}          text             
         * @param   {number}          position         
         * @param   {System.Int32}    nextLineStart
         * @return  {boolean}
         */
        TryGetNextLineStart(text: string | null, position: number, nextLineStart: {v: number}): boolean;
        /**
         * Gets the position of the start of the first line break or -1
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text
         * @return  {number}
         */
        GetFirstLineBreakStart(text: string | null): number;
        /**
         * Gets the index of the end of hte first line break or -1
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text
         * @return  {number}
         */
        GetFirstLineBreakEnd(text: string | null): number;
        /**
         * Gets the index of the start of the last line break or -1
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        GetLastLineBreakStart(text: string | null, start?: number): number;
        /**
         * Gets the index of the start of the last line break or -1
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        GetLastLineBreakEnd(text: string | null, start?: number): number;
        /**
         * Returns true if the line is empty or whitespace.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}     text         
         * @param   {number}     lineStart
         * @return  {boolean}
         */
        IsBlankLine(text: string | null, lineStart: number): boolean;
        /**
         * Gets the text position after the leading whitespace on the line.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text         
         * @param   {number}    lineStart
         * @return  {number}
         */
        GetPositionAfterLeadingWhitespace(text: string | null, lineStart: number): number;
        /**
         * Gets the line length (including line break characters)
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}     text                
         * @param   {number}     lineStart           
         * @param   {boolean}    includeLineBreak
         * @return  {number}
         */
        GetLineLength(text: string | null, lineStart: number, includeLineBreak?: boolean): number;
        /**
         * Gets the index of the start of the next line or -1;
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        GetNextLineStart(text: string | null, start: number): number;
        IsLetter(ch: number): boolean;
        IsDigit(ch: number): boolean;
        IsLetterOrDigit(ch: number): boolean;
        IsHexDigit(ch: number): boolean;
        /**
         * Gets the starting offset of all the lines.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}                               text          
         * @param   {System.Collections.Generic.List$1}    lineStarts
         * @return  {void}
         */
        GetLineStarts$1(text: string | null, lineStarts: System.Collections.Generic.List$1<number> | null): void;
        /**
         * Gets the starting offset of all the lines.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}                                        text
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetLineStarts(text: string | null): System.Collections.Generic.IReadOnlyList$1<number> | null;
        /**
         * Gets the starting position of the 1-based line number.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}          text         
         * @param   {number}          line         
         * @param   {System.Int32}    lineStart
         * @return  {boolean}
         */
        TryGetLineStart(text: string | null, line: number, lineStart: {v: number}): boolean;
        /**
         * Gets the 1-based line and lineOffset for a position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}          text          
         * @param   {number}          position      
         * @param   {System.Int32}    line          
         * @param   {System.Int32}    lineOffset
         * @return  {boolean}
         */
        TryGetLineAndOffset$1(text: string | null, position: number, line: {v: number}, lineOffset: {v: number}): boolean;
        /**
         * Gets the 1-based line and lineOffset for a position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {System.Collections.Generic.List$1}    lineStarts    
         * @param   {number}                               position      
         * @param   {System.Int32}                         line          
         * @param   {System.Int32}                         lineOffset
         * @return  {boolean}
         */
        TryGetLineAndOffset(lineStarts: System.Collections.Generic.List$1<number> | null, position: number, line: {v: number}, lineOffset: {v: number}): boolean;
        /**
         * Gets the position corresponding to the 1-based line and lineOffset.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}          text          
         * @param   {number}          line          
         * @param   {number}          lineOffset    
         * @param   {System.Int32}    position
         * @return  {boolean}
         */
        TryGetPosition$1(text: string | null, line: number, lineOffset: number, position: {v: number}): boolean;
        /**
         * Gets the position corresponding to the 1-based line and lineOffset.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {System.Collections.Generic.IReadOnlyList$1}    lineStarts    
         * @param   {number}                                        line          
         * @param   {number}                                        lineOffset    
         * @param   {System.Int32}                                  position
         * @return  {boolean}
         */
        TryGetPosition(lineStarts: System.Collections.Generic.IReadOnlyList$1<number> | null, line: number, lineOffset: number, position: {v: number}): boolean;
        /**
         * Trims the whitespace off the end of the text range.
         Returns the new length with the whitespace removed.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text
         * @return  {number}
         */
        TrimEnd(text: string | null): number;
        /**
         * Trims the whitespace off the end of the text range.
         Returns the new length with the whitespace removed.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text      
         * @param   {number}    start     
         * @param   {number}    length
         * @return  {number}
         */
        TrimEnd$1(text: string | null, start: number, length: number): number;
        /**
         * Trims the whitespace from the start of the range.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}          text      
         * @param   {System.Int32}    start     
         * @param   {System.Int32}    length
         * @return  {void}
         */
        TrimRangeStart(text: string | null, start: {v: number}, length: {v: number}): void;
        /**
         * Trims the whitespace from the end of the range.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}          text      
         * @param   {number}          start     
         * @param   {System.Int32}    length
         * @return  {void}
         */
        TrimRangeEnd(text: string | null, start: number, length: {v: number}): void;
        /**
         * Trims the whitespace from the start and end of the range.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}          text      
         * @param   {System.Int32}    start     
         * @param   {System.Int32}    length
         * @return  {void}
         */
        TrimRange(text: string | null, start: {v: number}, length: {v: number}): void;
        /**
         * Expands the range to include the start of the first line.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}          text      
         * @param   {System.Int32}    start     
         * @param   {System.Int32}    length
         * @return  {void}
         */
        ExpandRangeToStartOfFirstLine(text: string | null, start: {v: number}, length: {v: number}): void;
        /**
         * Expands range to include the end of the last line.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}          text      
         * @param   {number}          start     
         * @param   {System.Int32}    length
         * @return  {void}
         */
        ExpandRangeToEndOfLastLine(text: string | null, start: number, length: {v: number}): void;
        /**
         * Expands the range to include the start of the first line and the end of the last line.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}          text      
         * @param   {System.Int32}    start     
         * @param   {System.Int32}    length
         * @return  {void}
         */
        ExpandRangeToStartAndEndOfLines(text: string | null, start: {v: number}, length: {v: number}): void;
        /**
         * Gets the length of the whitespace indentation for the line containing the specified position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text        
         * @param   {number}    position
         * @return  {number}
         */
        GetIndentationLength(text: string | null, position: number): number;
        /**
         * Gets the indentation text for the line containing the position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text        
         * @param   {number}    position
         * @return  {string}
         */
        GetIndentationText(text: string | null, position: number): string | null;
        /**
         * Gets the text of the line for the specified 1-based line number.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}    text    
         * @param   {number}    line
         * @return  {string}
         */
        GetLineText(text: string | null, line: number): string | null;
        /**
         * Gets the text of the lines for each line in the text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TextFacts
         * @memberof Kusto.Language.Parsing.TextFacts
         * @param   {string}                                        text
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetLineTexts(text: string | null): System.Collections.Generic.IReadOnlyList$1<string> | null;
    }
    var TextFacts: TextFactsFunc;

    /**
     * Parses {@link } for Kusto query language
     *
     * @public
     * @class Kusto.Language.Parsing.TokenParser
     */
    interface TokenParser {
        /**
         * Parses the token at the starting offset in the text.
         *
         * @instance
         * @private
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}                                 text       
         * @param   {number}                                 start      
         * @param   {Kusto.Language.ParseOptions}            options
         * @return  {Kusto.Language.Parsing.LexicalToken}
         */
        /**
         * Parses the sequence of trivia in the string from the specified start position.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {string}
         */
        ParseTrivia(text: string | null, start: number): string | null;
        /**
         * Scans raw guid literals only.
         Does not scan guid(xxx) literals.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        ScanRawGuidLiteral(text: string | null, start: number): number;
    }
    interface TokenParserFunc extends Function {
        prototype: TokenParser;
        TokenInfo: Kusto.Language.Parsing.TokenParser.TokenInfoFunc;
        /**
         * Parses the token at the starting position in the text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}                                 text       
         * @param   {number}                                 start      
         * @param   {Kusto.Language.ParseOptions}            options
         * @return  {Kusto.Language.Parsing.LexicalToken}
         */
        ParseToken(text: string | null, start?: number, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Parsing.LexicalToken | null;
        /**
         * Parses all the tokens in the text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}                                         text       
         * @param   {Kusto.Language.ParseOptions}                    options
         * @return  {Array.<Kusto.Language.Parsing.LexicalToken>}
         */
        ParseTokens(text: string | null, options?: Kusto.Language.ParseOptions | null): Kusto.Language.Parsing.LexicalToken[] | null;
        /**
         * Parses all the tokens in the text.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}                               text       
         * @param   {System.Collections.Generic.List$1}    tokens     
         * @param   {Kusto.Language.ParseOptions}          options
         * @return  {void}
         */
        ParseTokens$1(text: string | null, tokens: System.Collections.Generic.List$1<Kusto.Language.Parsing.LexicalToken> | null, options?: Kusto.Language.ParseOptions | null): void;
        /**
         * Returns true if the character is the starting quote character
         of string literal.
         *
         * @static
         * @private
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {number}     ch
         * @return  {boolean}
         */
        /**
         * Scans raw boolean literals: true or false.
         Does not scan bool(xxx).
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        ScanBooleanLiteral(text: string | null, start?: number): number;
        /**
         * Returns the number of consecutive whitespace characters from the start position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        ScanWhitespace(text: string | null, start: number): number;
        /**
         * Returns the number of consecutive trivia characters from the start position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        ScanTrivia(text: string | null, start: number): number;
        /**
         * Returns the number of characters in a comment starting at the start position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        ScanComment(text: string | null, start: number): number;
        /**
         * Returns the number of characters in the identifier or -1 if there is no
         identitifer at the starting position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        ScanIdentifier(text: string | null, start?: number): number;
        /**
         * Scans raw long literal values. 
         Does not scan long(xxx).
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        ScanLongLiteral(text: string | null, start?: number): number;
        /**
         * Scans raw real literals: 1.0, etc.
         Does not scan real(xxx).
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        ScanRealLiteral(text: string | null, start?: number): number;
        /**
         * Scans raw timespan literals, 1day, etc.
         Does not scan timespan(xxx).
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        ScanTimespanLiteral(text: string | null, start?: number): number;
        /**
         * Returns the number of characters that are part of the string literal, or -1 if the text
         at the starting position is not a string literal.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}     text                       
         * @param   {number}     start                      
         * @param   {boolean}    failWhenMissingEndQuote
         * @return  {number}
         */
        ScanStringLiteral(text: string | null, start?: number, failWhenMissingEndQuote?: boolean): number;
        /**
         * Scans the content of a parenthesized literal
         *
         * @static
         * @private
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}                         text       
         * @param   {number}                         start      
         * @param   {Kusto.Language.ParseOptions}    options
         * @return  {number}
         */
        /**
         * Returns the number of characters in the client parameter of -1 if there is no client parameter.
         This is not a normal token, but a special case for the client editor.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}    text     
         * @param   {number}    start
         * @return  {number}
         */
        ScanClientParameter(text: string | null, start?: number): number;
        /**
         * Returns the number of characters in the client parameter of -1 if there is no client parameter.
         This is not a normal token, but a special case for the client editor.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TokenParser
         * @memberof Kusto.Language.Parsing.TokenParser
         * @param   {string}          text           
         * @param   {number}          start          
         * @param   {System.Int32}    nameStart      
         * @param   {System.Int32}    nameLength     
         * @param   {System.Int32}    indexStart     
         * @param   {System.Int32}    indexLength
         * @return  {number}
         */
        ScanClientParameter$1(text: string | null, start: number, nameStart: {v: number}, nameLength: {v: number}, indexStart: {v: number}, indexLength: {v: number}): number;
    }
    var TokenParser: TokenParserFunc;
    module TokenParser {
        interface TokenInfo {
            Kind: Kusto.Language.Syntax.SyntaxKind;
            Text: string | null;
            ZeroTriviaToken: Kusto.Language.Parsing.LexicalToken | null;
            SingleWhitespaceToken: Kusto.Language.Parsing.LexicalToken | null;
            GetToken(trivia: string | null): Kusto.Language.Parsing.LexicalToken | null;
        }
        interface TokenInfoFunc extends Function {
            prototype: TokenInfo;
            new (kind: Kusto.Language.Syntax.SyntaxKind): TokenInfo;
        }
    }

    /**
     * API's for parsing as much of a parser's grammar that matches the input.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Parsing.PartialParser
     */
    interface PartialParser {
    }
    interface PartialParserFunc extends Function {
        prototype: PartialParser;
        Partial$1: Kusto.Language.Parsing.PartialParser.Partial$1Func;
        new (): PartialParser;
        /**
         * Parses the input into either the expected output for the parser,
         or one or more outputs that correspond to the recognized parts the grammar.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.PartialParser
         * @memberof Kusto.Language.Parsing.PartialParser
         * @param   {Function}                             TInput         
         * @param   {Kusto.Language.Parsing.Parser$1}      parser         
         * @param   {Kusto.Language.Parsing.Source$1}      input          
         * @param   {number}                               inputStart     
         * @param   {System.Collections.Generic.List$1}    output         
         * @param   {number}                               outputStart    
         * @param   {System.Action}                        onFailure
         * @return  {number}
         */
        ParsePartial<TInput>(TInput: {prototype: TInput}, parser: Kusto.Language.Parsing.Parser$1<TInput> | null, input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number, onFailure?: {(arg1: Kusto.Language.Parsing.Parser$1<TInput>, arg2: System.Collections.Generic.List$1<any>): void} | null): number;
        /**
         * Parses the input into the output of the partially parsed parser that consumes the most input.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.PartialParser
         * @memberof Kusto.Language.Parsing.PartialParser
         * @param   {Function}                                      TInput         
         * @param   {System.Collections.Generic.IReadOnlyList$1}    parsers        
         * @param   {Kusto.Language.Parsing.Source$1}               input          
         * @param   {number}                                        inputStart     
         * @param   {System.Collections.Generic.List$1}             output         
         * @param   {number}                                        outputStart    
         * @param   {System.Collections.Generic.List$1}             bestParsers    
         * @param   {System.Action}                                 onFailure
         * @return  {number}
         */
        ParsePartialBest<TInput>(TInput: {prototype: TInput}, parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null, input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number, bestParsers: System.Collections.Generic.List$1<Kusto.Language.Parsing.Parser$1<TInput>> | null, onFailure?: {(arg1: Kusto.Language.Parsing.Parser$1<TInput>, arg2: System.Collections.Generic.List$1<any>): void} | null): number;
        /**
         * Returns the number of input item that would be consumed by {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.PartialParser
         * @memberof Kusto.Language.Parsing.PartialParser
         * @param   {Function}                           TInput        
         * @param   {Kusto.Language.Parsing.Parser$1}    parser        
         * @param   {Kusto.Language.Parsing.Source$1}    input         
         * @param   {number}                             inputStart
         * @return  {number}
         */
        ScanPartial<TInput>(TInput: {prototype: TInput}, parser: Kusto.Language.Parsing.Parser$1<TInput> | null, input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number): number;
        /**
         * Returns the number of input items that would be consumed by {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.PartialParser
         * @memberof Kusto.Language.Parsing.PartialParser
         * @param   {Function}                                      TInput        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    parsers       
         * @param   {Kusto.Language.Parsing.Source$1}               input         
         * @param   {number}                                        inputStart
         * @return  {number}
         */
        ScanPartialBest<TInput>(TInput: {prototype: TInput}, parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null, input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number): number;
    }
    var PartialParser: PartialParserFunc;
    module PartialParser {
        interface Partial$1<TInput> {
        }
        interface Partial$1Func extends Function {
            <TInput>($TInput: Bridge.TypeRef<TInput>): {
                prototype: Partial$1<TInput>;
                PathFinder: Kusto.Language.Parsing.PartialParser.Partial$1.PathFinderFunc;
                BestPathKey: Kusto.Language.Parsing.PartialParser.Partial$1.BestPathKeyFunc;
                MemoizedInfo: Kusto.Language.Parsing.PartialParser.Partial$1.MemoizedInfoFunc;
                Path: Kusto.Language.Parsing.PartialParser.Partial$1.PathFunc;
                ScanOutput: Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutputFunc;
                BestPathInfo: Kusto.Language.Parsing.PartialParser.Partial$1.BestPathInfoFunc;
                ScanInput: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInputFunc;
                new (): Partial$1<TInput>;
                Scan(parser: Kusto.Language.Parsing.Parser$1<TInput> | null, input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number): number;
                Parse(parser: Kusto.Language.Parsing.Parser$1<TInput> | null, input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number, onFailure: {(arg1: Kusto.Language.Parsing.Parser$1<TInput>, arg2: System.Collections.Generic.List$1<any>): void} | null): number;
                /**
                 * Gets the single best path from the collection of paths.
                 *
                 * @static
                 * @private
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1
                 * @param   {System.Collections.Generic.IReadOnlyList$1}             paths    
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    input
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.Path}
                 */
                ScanBest(parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null, input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number): number;
                ParseBest(parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null, input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number, bestParsers: System.Collections.Generic.List$1<Kusto.Language.Parsing.Parser$1<TInput>> | null, onFailure: {(arg1: Kusto.Language.Parsing.Parser$1<TInput>, arg2: System.Collections.Generic.List$1<any>): void} | null): number;
                /**
                 * True if the output path has succesfully scanned something relative to the input path.
                 *
                 * @static
                 * @private
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    input     
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    output
                 * @return  {boolean}
                 */
                /**
                 * True if the output path has made some progress, either successfully or partially scanned.
                 *
                 * @static
                 * @private
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    input     
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    output
                 * @return  {boolean}
                 */
                /**
                 * Replace one or more repeated instances of inner parser at end of path with outer parser,
                 consuming the same amount out input.
                 *
                 * @static
                 * @private
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1
                 * @param   {Kusto.Language.Parsing.Parser$1}                        outer         
                 * @param   {Kusto.Language.Parsing.Parser$1}                        inner         
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    initial       
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    result        
                 * @param   {number}                                                 maxRepeats
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.Path}
                 */
                /**
                 * Replace sequences of inner parsers at end of path with outer parser,
                 consuming the same amount out input.
                 *
                 * @static
                 * @private
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1
                 * @param   {Kusto.Language.Parsing.Parser$1}                        outer      
                 * @param   {System.Collections.Generic.IReadOnlyList$1}             inners     
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    initial    
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    result
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.Path}
                 */
                /**
                 * Replace one or more repeated instances of inner parser at end of each path with outer parser,
                 consuming the same amount out input.
                 *
                 * @static
                 * @private
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}    output        
                 * @param   {Kusto.Language.Parsing.Parser$1}                              outer         
                 * @param   {Kusto.Language.Parsing.Parser$1}                              inner         
                 * @param   {number}                                                       maxRepeats
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}
                 */
            }
        }
        module Partial$1 {
            /**
             * A parser visitor that finds paths that are legal full or partial scan of an input.
             *
             * @private
             * @class Kusto.Language.Parsing.PartialParser.Partial$1.PathFinder
             * @augments Kusto.Language.Parsing.ParserVisitor$3
             */
            interface PathFinder<TInput> extends Kusto.Language.Parsing.ParserVisitor$3<TInput,Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>,Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>> {
                /**
                 * Finds the sequence of least granular parsers in the grammar that consume the most input.
                 *
                 * @instance
                 * @public
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1.PathFinder
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.PathFinder
                 * @param   {Kusto.Language.Parsing.Parser$1}                        parser        
                 * @param   {Kusto.Language.Parsing.Source$1}                        source        
                 * @param   {number}                                                 inputStart
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.Path}
                 */
                FindPath(parser: Kusto.Language.Parsing.Parser$1<TInput> | null, source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number): Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null;
                FindBestPath(parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null, source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, bestParsers?: System.Collections.Generic.List$1<Kusto.Language.Parsing.Parser$1<TInput>> | null): Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null;
                VisitMatch(parser: Kusto.Language.Parsing.MatchParser$1<TInput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitMatch$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MatchParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitConvert<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ConvertParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitMap<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MapParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitFails(parser: Kusto.Language.Parsing.FailsParser$1<TInput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitNot(parser: Kusto.Language.Parsing.NotParser$1<TInput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                /**
                 * Just simple scan of parser.
                 *
                 * @instance
                 * @private
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1.PathFinder
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.PathFinder
                 * @param   {Kusto.Language.Parsing.Parser$1}                              parser     
                 * @param   {Kusto.Language.Parsing.Parser$1}                              scanned    
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput}     input
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}
                 */
                VisitForward<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ForwardParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitIf$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.IfParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitIf(parser: Kusto.Language.Parsing.IfParser$1<TInput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitLimit<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.LimitParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitSequence(parser: Kusto.Language.Parsing.SequenceParser$1<TInput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitRule<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RuleParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitProduce<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ProduceParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                /**
                 * Scans the sequence steps from stepIndex forward to the end of the sequence,
                 placing all the resulting paths in the paths collection.
                 *
                 * @instance
                 * @private
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1.PathFinder
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.PathFinder
                 * @param   {System.Collections.Generic.IReadOnlyList$1}                  stepParsers     
                 * @param   {number}                                                      stepIndex       
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput}    initialInput    
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}         path            
                 * @param   {System.Collections.Generic.List$1}                           resultPaths
                 * @return  {void}
                 */
                VisitOptional<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.OptionalParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitRequired<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RequiredParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitOneOrMore(parser: Kusto.Language.Parsing.OneOrMoreParser$1<TInput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitZeroOrMore(parser: Kusto.Language.Parsing.ZeroOrMoreParser$1<TInput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitBest$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.BestParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitBest(parser: Kusto.Language.Parsing.BestParser$1<TInput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitFirst$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.FirstParser$2<TInput,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitFirst(parser: Kusto.Language.Parsing.FirstParser$1<TInput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                ScanFirst(outer: Kusto.Language.Parsing.Parser$1<TInput> | null, alternates: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                VisitApply<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, outer: Kusto.Language.Parsing.ApplyParser$3<TInput,TLeft,TOutput> | null, input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
            }
            interface PathFinderFunc extends Function {
                <TInput>($TInput: Bridge.TypeRef<TInput>): {
                    prototype: PathFinder<TInput>;
                    new (): PathFinder<TInput>;
                    /**
                     * Adds an error to the final path when parsing a sequence.
                     *
                     * @static
                     * @private
                     * @this Kusto.Language.Parsing.PartialParser.Partial$1.PathFinder
                     * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.PathFinder
                     * @param   {Kusto.Language.Parsing.Parser$1}                        parser              
                     * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    initialPath         
                     * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    previousStepPath    
                     * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}    finalPath
                     * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.Path}
                     */
                }
            }

            interface BestPathKey<TInput> extends System.IEquatable$1<Kusto.Language.Parsing.PartialParser.Partial$1.BestPathKey<TInput>> {
                Parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null;
                InputStart: number;
                equalsT(other: Kusto.Language.Parsing.PartialParser.Partial$1.BestPathKey<TInput>): boolean;
                equals(obj: any | null): boolean;
                getHashCode(): number;
                $clone(to: Kusto.Language.Parsing.PartialParser.Partial$1.BestPathKey<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.BestPathKey<TInput>;
            }
            interface BestPathKeyFunc extends Function {
                <TInput>($TInput: Bridge.TypeRef<TInput>): {
                    prototype: BestPathKey<TInput>;
                    $ctor1: {
                        new (parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null, inputStart: number): BestPathKey<TInput>
                    };
                    new (): BestPathKey<TInput>;
                    ctor: {
                        new (): BestPathKey<TInput>
                    };
                }
            }

            interface MemoizedInfo<TInput> {
                BestPaths: System.Collections.Generic.Dictionary$2<Kusto.Language.Parsing.PartialParser.Partial$1.BestPathKey<TInput>,Kusto.Language.Parsing.PartialParser.Partial$1.BestPathInfo<TInput>> | null;
            }
            interface MemoizedInfoFunc extends Function {
                <TInput>($TInput: Bridge.TypeRef<TInput>): {
                    prototype: MemoizedInfo<TInput>;
                    new (): MemoizedInfo<TInput>;
                }
            }

            /**
             * A sequence of {@link } that represent a full or partial scan of the input.
             *
             * @public
             * @class Kusto.Language.Parsing.PartialParser.Partial$1.Path
             */
            interface Path<TInput> {
                /**
                 * The previous path and all the previous steps.
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.Path
                 * @type Kusto.Language.Parsing.PartialParser.Partial$1.Path
                 */
                Previous: Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null;
                /**
                 * The last parser used.
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.Path
                 * @type Kusto.Language.Parsing.Parser$1
                 */
                Parser: Kusto.Language.Parsing.Parser$1<TInput> | null;
                /**
                 * The total number of nodes in this path.
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.Path
                 * @type number
                 */
                Length: number;
                /**
                 * The total input length of the path.
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.Path
                 * @type number
                 */
                InputLength: number;
                /**
                 * True if this step is an error.
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.Path
                 * @type boolean
                 */
                IsError: boolean;
                Add(parser: Kusto.Language.Parsing.Parser$1<TInput> | null, inputLength: number): Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null;
                AddError(parser: Kusto.Language.Parsing.Parser$1<TInput> | null): Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null;
            }
            interface PathFunc extends Function {
                <TInput>($TInput: Bridge.TypeRef<TInput>): {
                    prototype: Path<TInput>;
                    /**
                     * An empty path
                     *
                     * @static
                     * @public
                     * @readonly
                     * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.Path
                     * @type Kusto.Language.Parsing.PartialParser.Partial$1.Path
                     */
                    Empty: Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null;
                }
            }

            /**
             * The output for {@link } visits.
             *
             * @public
             * @class Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
             */
            interface ScanOutput<TInput> {
                Input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>;
                Path: Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null;
                Paths: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput>> | null;
                /**
                 * True if the output has multiple resulting paths.
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @function HasMultiplePaths
                 * @type boolean
                 */
                HasMultiplePaths: boolean;
                /**
                 * True if any path made progress relative to the input path.
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @function MadeProgress
                 * @type boolean
                 */
                MadeProgress: boolean;
                /**
                 * True if any path had a success scan relative to input path.
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @function HadSuccess
                 * @type boolean
                 */
                HadSuccess: boolean;
                /**
                 * The maximum input length of successfully scanned paths.
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @function MaxSuccessInputLength
                 * @type number
                 */
                MaxSuccessInputLength: number;
                /**
                 * Returns a new {@link } with the Input modified to the specified input.
                 *
                 * @instance
                 * @public
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput}     input
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}
                 */
                WithInput(input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                /**
                 * Return a new {@link } with the path modified to the specified path.
                 *
                 * @instance
                 * @public
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}          path
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}
                 */
                WithPath(path: Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                /**
                 * Returns a new {@link } with the paths modified to the specified paths.
                 *
                 * @instance
                 * @public
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @param   {System.Collections.Generic.IEnumerable$1}                     paths
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}
                 */
                WithPaths$1(paths: System.Collections.Generic.IEnumerable$1<Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput>> | null): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                /**
                 * Returns a new {@link } with the paths modified to be the same paths as from the other output.
                 *
                 * @instance
                 * @public
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}    other
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}
                 */
                WithPaths(other: Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                /**
                 * Returns a new {@link } with paths modified to include the specified path.
                 *
                 * @instance
                 * @public
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.Path}          path
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}
                 */
                AddPath(path: Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                /**
                 * Returns a new {@link } with paths modified to include the specified paths.
                 *
                 * @instance
                 * @public
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @param   {System.Collections.Generic.IEnumerable$1}                     paths
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}
                 */
                AddPaths$1(paths: System.Collections.Generic.IEnumerable$1<Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput>> | null): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                /**
                 * Returns a new {@link } with paths modified to include the paths from the other output.
                 *
                 * @instance
                 * @public
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @param   {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}    other
                 * @return  {Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput}
                 */
                AddPaths(other: Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                /**
                 * Appends the paths to the list
                 *
                 * @instance
                 * @public
                 * @this Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput
                 * @param   {System.Collections.Generic.List$1}    paths
                 * @return  {void}
                 */
                GetPaths(paths: System.Collections.Generic.List$1<Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput>> | null): void;
                getHashCode(): number;
                equals(o: Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>): boolean;
                $clone(to: Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
            }
            interface ScanOutputFunc extends Function {
                <TInput>($TInput: Bridge.TypeRef<TInput>): {
                    prototype: ScanOutput<TInput>;
                    $ctor1: {
                        new (input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>, path: Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null): ScanOutput<TInput>
                    };
                    $ctor2: {
                        new (input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>, paths: System.Collections.Generic.IEnumerable$1<Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput>> | null): ScanOutput<TInput>
                    };
                    new (): ScanOutput<TInput>;
                    ctor: {
                        new (): ScanOutput<TInput>
                    };
                }
            }

            interface BestPathInfo<TInput> {
                BestPath: Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null;
                BestParsers: System.Collections.Generic.List$1<Kusto.Language.Parsing.Parser$1<TInput>> | null;
            }
            interface BestPathInfoFunc extends Function {
                <TInput>($TInput: Bridge.TypeRef<TInput>): {
                    prototype: BestPathInfo<TInput>;
                    new (bestPath: Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null, bestParsers: System.Collections.Generic.List$1<Kusto.Language.Parsing.Parser$1<TInput>> | null): BestPathInfo<TInput>;
                }
            }

            /**
             * The input for {@link } visits.
             *
             * @public
             * @class Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput
             */
            interface ScanInput<TInput> {
                /**
                 * The input source in use.
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput
                 * @type Kusto.Language.Parsing.Source$1
                 */
                Source: Kusto.Language.Parsing.Source$1<TInput> | null;
                /**
                 * The input start position within the source
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput
                 * @type number
                 */
                InputStart: number;
                /**
                 * The path before the parser is scanned
                 *
                 * @instance
                 * @public
                 * @readonly
                 * @memberof Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput
                 * @type Kusto.Language.Parsing.PartialParser.Partial$1.Path
                 */
                Path: Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null;
                WithSource(source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart?: number): Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>;
                WithPath(path: Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null): Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>;
                getHashCode(): number;
                equals(o: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): boolean;
                $clone(to: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>;
            }
            interface ScanInputFunc extends Function {
                <TInput>($TInput: Bridge.TypeRef<TInput>): {
                    prototype: ScanInput<TInput>;
                    $ctor1: {
                        new (source: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, path: Kusto.Language.Parsing.PartialParser.Partial$1.Path<TInput> | null): ScanInput<TInput>
                    };
                    new (): ScanInput<TInput>;
                    ctor: {
                        new (): ScanInput<TInput>
                    };
                    op_Implicit(input: Kusto.Language.Parsing.PartialParser.Partial$1.ScanInput<TInput>): Kusto.Language.Parsing.PartialParser.Partial$1.ScanOutput<TInput>;
                }
            }
        }
    }

    interface ParserVisitor$3<TInput,TArg,TResult> {
        VisitApply<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ApplyParser$3<TInput,TLeft,TOutput> | null, arg: TArg): TResult;
        VisitBest$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.BestParser$2<TInput,TOutput> | null, arg: TArg): TResult;
        VisitBest(parser: Kusto.Language.Parsing.BestParser$1<TInput> | null, arg: TArg): TResult;
        VisitConvert<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ConvertParser$2<TInput,TOutput> | null, arg: TArg): TResult;
        VisitFails(parser: Kusto.Language.Parsing.FailsParser$1<TInput> | null, arg: TArg): TResult;
        VisitFirst$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.FirstParser$2<TInput,TOutput> | null, arg: TArg): TResult;
        VisitFirst(parser: Kusto.Language.Parsing.FirstParser$1<TInput> | null, arg: TArg): TResult;
        VisitForward<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ForwardParser$2<TInput,TOutput> | null, arg: TArg): TResult;
        VisitIf$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.IfParser$2<TInput,TOutput> | null, arg: TArg): TResult;
        VisitIf(parser: Kusto.Language.Parsing.IfParser$1<TInput> | null, arg: TArg): TResult;
        VisitMap<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MapParser$2<TInput,TOutput> | null, arg: TArg): TResult;
        VisitMatch(parser: Kusto.Language.Parsing.MatchParser$1<TInput> | null, arg: TArg): TResult;
        VisitMatch$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MatchParser$2<TInput,TOutput> | null, arg: TArg): TResult;
        VisitNot(parser: Kusto.Language.Parsing.NotParser$1<TInput> | null, arg: TArg): TResult;
        VisitOneOrMore(parser: Kusto.Language.Parsing.OneOrMoreParser$1<TInput> | null, arg: TArg): TResult;
        VisitOptional<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.OptionalParser$2<TInput,TOutput> | null, arg: TArg): TResult;
        VisitProduce<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ProduceParser$2<TInput,TOutput> | null, arg: TArg): TResult;
        VisitRequired<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RequiredParser$2<TInput,TOutput> | null, arg: TArg): TResult;
        VisitRule<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RuleParser$2<TInput,TOutput> | null, arg: TArg): TResult;
        VisitSequence(parser: Kusto.Language.Parsing.SequenceParser$1<TInput> | null, arg: TArg): TResult;
        VisitZeroOrMore(parser: Kusto.Language.Parsing.ZeroOrMoreParser$1<TInput> | null, arg: TArg): TResult;
        VisitLimit<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.LimitParser$2<TInput,TOutput> | null, arg: TArg): TResult;
    }
    interface ParserVisitor$3Func extends Function {
        <TInput, TArg, TResult>($TInput: Bridge.TypeRef<TInput>, $TArg: Bridge.TypeRef<TArg>, $TResult: Bridge.TypeRef<TResult>): {
            prototype: ParserVisitor$3<TInput,TArg,TResult>;
            new (): ParserVisitor$3<TInput,TArg,TResult>;
        }
    }
    var ParserVisitor$3: ParserVisitor$3Func;

    enum AllowedNameKind {
        DeclaredOrKnown = 0,
        KnownOnly = 1,
        DeclaredOnly = 2
    }

    enum ApplyKind {
        One = 0,
        ZeroOrOne = 1,
        ZeroOrMore = 2
    }

    /**
     * A parser combinator that can scan, search and parse input.
     When parsing, may produce zero or more output values.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Parsing.Parser$1
     */
    interface Parser$1<TInput> {
        /**
         * The name of the parser.
         Most parsers have no name.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Parsing.Parser$1
         * @function Tag
         * @type string
         */
        Tag: string | null;
        /**
         * Annotations on the parser.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Parsing.Parser$1
         * @function Annotations
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Annotations: System.Collections.Generic.IReadOnlyList$1<any> | null;
        /**
         * A description of the parser.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.Parser$1
         * @function Description
         * @type string
         */
        Description: string | null;
        /**
         * True if the parser is hidden from searching.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Parsing.Parser$1
         * @function IsHidden
         * @type boolean
         */
        IsHidden: boolean;
        /**
         * True if the parser still succeeds if it does not match anything, 
         and instead produces nothing.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.Parser$1
         * @function IsOptional
         * @type boolean
         */
        IsOptional: boolean;
        /**
         * True if the parser still succeeds if it does not match anything,
         but produces a fixed value instead.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.Parser$1
         * @function IsRequired
         * @type boolean
         */
        IsRequired: boolean;
        /**
         * True if the parser succeeds if any one of many child parsers succeed.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.Parser$1
         * @function IsAlternation
         * @type boolean
         */
        IsAlternation: boolean;
        /**
         * True if the parser succeeds if all of many child parsers succeed in sequence.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.Parser$1
         * @function IsSequence
         * @type boolean
         */
        IsSequence: boolean;
        /**
         * True if the parser produces multiple outputs from repeatedly parsing a child parser.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.Parser$1
         * @function IsRepetition
         * @type boolean
         */
        IsRepetition: boolean;
        /**
         * True if the parser matches input directly.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.Parser$1
         * @function IsMatch
         * @type boolean
         */
        IsMatch: boolean;
        /**
         * True if this parser forwards to another parser,
         meaning it may be involved in a cycle.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.Parser$1
         * @function IsForward
         * @type boolean
         */
        IsForward: boolean;
        IsNegation: boolean;
        IsConditional: boolean;
        /**
         * Creates a copy of this {@link } with the tag specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @param   {string}                             tag
         * @return  {Kusto.Language.Parsing.Parser$1}
         */
        WithTag(tag: string | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        /**
         * Creates a copy of this {@link } with the annotations specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @param   {System.Collections.Generic.IEnumerable$1}    annotations
         * @return  {Kusto.Language.Parsing.Parser$1}
         */
        WithAnnotations(annotations: System.Collections.Generic.IEnumerable$1<any> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        /**
         * Creates a copy of this {@link } with the IsHidden property specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @param   {boolean}                            isHidden
         * @return  {Kusto.Language.Parsing.Parser$1}
         */
        WithIsHidden(isHidden: boolean): Kusto.Language.Parsing.Parser$1<TInput> | null;
        /**
         * Creates a copy of the {@link } that is hidden from searching.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @return  {Kusto.Language.Parsing.Parser$1}
         */
        Hide(): Kusto.Language.Parsing.Parser$1<TInput> | null;
        /**
         * Gets the index of the child parser contained by this parser.
         *
         * @instance
         * @public
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @param   {Kusto.Language.Parsing.Parser$1}    childParser
         * @return  {number}
         */
        GetChildParserIndex(childParser: Kusto.Language.Parsing.Parser$1<TInput> | null): number;
        /**
         * Create a shallow copy of this parser
         *
         * @instance
         * @abstract
         * @protected
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @return  {Kusto.Language.Parsing.Parser$1}
         */
        /**
         * Gets the child parser at the specified index.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @param   {number}                             index
         * @return  {Kusto.Language.Parsing.Parser$1}
         */
        GetChildParser(index: number): Kusto.Language.Parsing.Parser$1<TInput> | null;
        /**
         * Invokes the corresponding {@link } visit method.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @param   {Kusto.Language.Parsing.ParserVisitor$1}    visitor
         * @return  {void}
         */
        Accept$2(visitor: Kusto.Language.Parsing.ParserVisitor$1<TInput> | null): void;
        /**
         * Invokes the corresponding {@link } visit method.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @param   {Function}                                  TResult    
         * @param   {Kusto.Language.Parsing.ParserVisitor$2}    visitor
         * @return  {TResult}
         */
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$2<TInput,TResult> | null): TResult;
        /**
         * Invokes the corresponding {@link } visit method.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @param   {Function}                                  TArg       
         * @param   {Function}                                  TResult    
         * @param   {Kusto.Language.Parsing.ParserVisitor$3}    visitor    
         * @param   {TArg}                                      arg
         * @return  {TResult}
         */
        Accept$1<TArg, TResult>(TArg: {prototype: TArg}, TResult: {prototype: TResult}, visitor: Kusto.Language.Parsing.ParserVisitor$3<TInput,TArg,TResult> | null, arg: TArg): TResult;
        /**
         * Parses input source items and produces zero or more output items.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @param   {Kusto.Language.Parsing.Source$1}      input          
         * @param   {number}                               inputStart     
         * @param   {System.Collections.Generic.List$1}    output         
         * @param   {number}                               outputStart
         * @return  {number}
         */
        Parse(input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number, output: System.Collections.Generic.List$1<any> | null, outputStart: number): number;
        /**
         * Returns the number of source items that are successfully matched by this parser, or a negative number indicating failure.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Parsing.Parser$1
         * @memberof Kusto.Language.Parsing.Parser$1
         * @param   {Kusto.Language.Parsing.Source$1}    input         
         * @param   {number}                             inputStart
         * @return  {number}
         */
        Scan(input: Kusto.Language.Parsing.Source$1<TInput> | null, inputStart: number): number;
    }
    interface Parser$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: Parser$1<TInput>;
            new (): Parser$1<TInput>;
        }
    }
    var Parser$1: Parser$1Func;

    /**
     * Parsers for the Kusto command grammar.
     *
     * @public
     * @class Kusto.Language.Parsing.CommandGrammar
     */
    interface CommandGrammar {
        /**
         * The entry point grammar for commands
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @function CommandBlock
         * @type Kusto.Language.Parsing.Parser$2
         */
        CommandBlock: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.CommandBlock> | null;
        PredefinedRules: Kusto.Language.Parsing.PredefinedRuleParsers | null;
        /**
         * Derived command parser's override this method to create the set of individual command parsers.
         *
         * @instance
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Parsing.PredefinedRuleParsers}                       rules
         * @return  {Array.<Kusto.Language.Parsing.CommandGrammar.CommandParserInfo>}
         */
    }
    interface CommandGrammarFunc extends Function {
        prototype: CommandGrammar;
        TagFinder: Kusto.Language.Parsing.CommandGrammar.TagFinderFunc;
        CommandParserInfo: Kusto.Language.Parsing.CommandGrammar.CommandParserInfoFunc;
        RecentGrammar: Kusto.Language.Parsing.CommandGrammar.RecentGrammarFunc;
        new (globals: Kusto.Language.GlobalState | null): CommandGrammar;
        /**
         * Add diagnostics for missing syntax.
         *
         * @static
         * @private
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Parsing.Parser$1}      parser    
         * @param   {System.Collections.Generic.List$1}    output
         * @return  {void}
         */
        /**
         * Gets or creates the {@link } corresponding to the {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.GlobalState}               globals
         * @return  {Kusto.Language.Parsing.CommandGrammar}
         */
        From(globals: Kusto.Language.GlobalState | null): Kusto.Language.Parsing.CommandGrammar | null;
        /**
         * Creates the correct kind of command grammar given the global state.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.GlobalState}               globals
         * @return  {Kusto.Language.Parsing.CommandGrammar}
         */
        CreateCommandGrammar(globals: Kusto.Language.GlobalState | null): Kusto.Language.Parsing.CommandGrammar | null;
        /**
         * Constructs a {@link } parser.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {System.Collections.Generic.IReadOnlyList$1}    parsers    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    shape
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Custom$9(parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken>> | null, shape?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * Constructs a {@link } parser.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Parsing.Parser$1}                  parser    
         * @param   {Kusto.Language.Syntax.CustomElementDescriptor}    shape
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Custom$8(parser: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, shape?: Kusto.Language.Syntax.CustomElementDescriptor | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * Constructs a {@link } parser.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Parsing.Parser$1}               parser1    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser2    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    shape
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Custom$7(parser1: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser2: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, shape?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * Constructs a {@link } parser.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Parsing.Parser$1}               parser1    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser2    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser3    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    shape
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Custom$6(parser1: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser2: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser3: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, shape?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * Constructs a {@link } parser.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Parsing.Parser$1}               parser1    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser2    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser3    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser4    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    shape
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Custom$5(parser1: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser2: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser3: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser4: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, shape?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * Constructs a {@link } parser.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Parsing.Parser$1}               parser1    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser2    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser3    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser4    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser5    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    shape
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Custom$4(parser1: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser2: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser3: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser4: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser5: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, shape?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * Constructs a {@link } parser.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Parsing.Parser$1}               parser1    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser2    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser3    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser4    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser5    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser6    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    shape
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Custom$3(parser1: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser2: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser3: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser4: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser5: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser6: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, shape?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * Constructs a {@link } parser.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Parsing.Parser$1}               parser1    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser2    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser3    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser4    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser5    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser6    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser7    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    shape
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Custom$2(parser1: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser2: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser3: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser4: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser5: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser6: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser7: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, shape?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * Constructs a {@link } parser.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Parsing.Parser$1}               parser1    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser2    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser3    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser4    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser5    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser6    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser7    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser8    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    shape
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Custom$1(parser1: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser2: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser3: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser4: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser5: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser6: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser7: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser8: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, shape?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * Constructs a {@link } parser.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Parsing.Parser$1}               parser1    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser2    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser3    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser4    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser5    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser6    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser7    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser8    
         * @param   {Kusto.Language.Parsing.Parser$1}               parser9    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    shape
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Custom(parser1: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser2: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser3: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser4: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser5: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser6: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser7: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser8: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, parser9: Kusto.Language.Parsing.Parser$1<Kusto.Language.Parsing.LexicalToken> | null, shape?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * Constructs a {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {string}                                           name          
         * @param   {Kusto.Language.Editor.CompletionHint}             hint          
         * @param   {boolean}                                          isOptional
         * @return  {Kusto.Language.Syntax.CustomElementDescriptor}
         */
        CD$1(name: string | null, hint?: Kusto.Language.Editor.CompletionHint, isOptional?: boolean): Kusto.Language.Syntax.CustomElementDescriptor | null;
        /**
         * Constructs a {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Kusto.Language.Editor.CompletionHint}             hint          
         * @param   {boolean}                                          isOptional
         * @return  {Kusto.Language.Syntax.CustomElementDescriptor}
         */
        CD(hint?: Kusto.Language.Editor.CompletionHint, isOptional?: boolean): Kusto.Language.Syntax.CustomElementDescriptor | null;
        /**
         * Constructs a custom command parser.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {string}                             commandName      
         * @param   {Kusto.Language.Parsing.Parser$2}    contentParser
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Command(commandName: string | null, contentParser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Command> | null;
        CreateMissingToken$1(text: string | null): Kusto.Language.Syntax.SyntaxElement | null;
        CreateMissingToken(texts: System.Collections.Generic.IReadOnlyList$1<string> | null): Kusto.Language.Syntax.SyntaxElement | null;
        CreateMissingToken$2(texts: string[] | null): Kusto.Language.Syntax.SyntaxElement | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has the specified text, producing a single {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {string}                                   text      
         * @param   {?Kusto.Language.Syntax.SyntaxKind}        asKind    
         * @param   {?Kusto.Language.Editor.CompletionKind}    ckind
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Token$1(text: string | null, asKind?: Kusto.Language.Syntax.SyntaxKind | null, ckind?: Kusto.Language.Editor.CompletionKind | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has the specified text, producing a single {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {string}                                  text     
         * @param   {Kusto.Language.Editor.CompletionKind}    ckind
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Token(text: string | null, ckind: Kusto.Language.Editor.CompletionKind): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has one of the specified texts, producing a single {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Array.<string>}                     texts
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        Token$2(texts: string[] | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has the specified text, producing a corresponding {@link } or an equivalent missing token otherwise.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {string}                                   text      
         * @param   {?Kusto.Language.Syntax.SyntaxKind}        asKind    
         * @param   {?Kusto.Language.Editor.CompletionKind}    ckind
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        RequiredToken(text: string | null, asKind?: Kusto.Language.Syntax.SyntaxKind | null, ckind?: Kusto.Language.Editor.CompletionKind | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * A parser that consumes the next {@link } (or series of adjacent tokens) if it has one of the specified texts, producing a corresponding {@link } or an equivalent missing token otherwise.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandGrammar
         * @memberof Kusto.Language.Parsing.CommandGrammar
         * @param   {Array.<string>}                     texts
         * @return  {Kusto.Language.Parsing.Parser$2}
         */
        RequiredToken$1(texts: string[] | null): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        ZeroOrMoreList(elementParser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null, separatorParser?: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null, fnMissingElement?: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null, allowTrailingSeparator?: boolean): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        ZeroOrMoreCommaList(elementParser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null, fnMissingElement?: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null, allowTrailingSeparator?: boolean): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        OneOrMoreList(elementParser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null, separatorParser?: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null, fnMissingElement?: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null, allowTrailingSeparator?: boolean): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
        OneOrMoreCommaList(elementParser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null, fnMissingElement?: {(arg1: Kusto.Language.Parsing.Source$1<Kusto.Language.Parsing.LexicalToken>, arg2: number): Kusto.Language.Syntax.SyntaxElement} | null, allowTrailingSeparator?: boolean): Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.SyntaxElement> | null;
    }
    var CommandGrammar: CommandGrammarFunc;
    module CommandGrammar {
        interface TagFinder extends Kusto.Language.Parsing.ParserVisitor$3<Kusto.Language.Parsing.LexicalToken,System.Collections.Generic.List$1<string>,boolean> {
            VisitApply<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ApplyParser$3<Kusto.Language.Parsing.LexicalToken,TLeft,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitBest$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.BestParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitBest(parser: Kusto.Language.Parsing.BestParser$1<Kusto.Language.Parsing.LexicalToken> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitConvert<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ConvertParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitFails(parser: Kusto.Language.Parsing.FailsParser$1<Kusto.Language.Parsing.LexicalToken> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitFirst$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.FirstParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitFirst(parser: Kusto.Language.Parsing.FirstParser$1<Kusto.Language.Parsing.LexicalToken> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitForward<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ForwardParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitIf$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.IfParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitIf(parser: Kusto.Language.Parsing.IfParser$1<Kusto.Language.Parsing.LexicalToken> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitLimit<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.LimitParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitMap<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MapParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitMatch(parser: Kusto.Language.Parsing.MatchParser$1<Kusto.Language.Parsing.LexicalToken> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitMatch$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MatchParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitNot(parser: Kusto.Language.Parsing.NotParser$1<Kusto.Language.Parsing.LexicalToken> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitOneOrMore(parser: Kusto.Language.Parsing.OneOrMoreParser$1<Kusto.Language.Parsing.LexicalToken> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitOptional<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.OptionalParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitProduce<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ProduceParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitRequired<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RequiredParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitRule<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RuleParser$2<Kusto.Language.Parsing.LexicalToken,TOutput> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitSequence(parser: Kusto.Language.Parsing.SequenceParser$1<Kusto.Language.Parsing.LexicalToken> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
            VisitZeroOrMore(parser: Kusto.Language.Parsing.ZeroOrMoreParser$1<Kusto.Language.Parsing.LexicalToken> | null, tags: System.Collections.Generic.List$1<string> | null): boolean;
        }
        interface TagFinderFunc extends Function {
            prototype: TagFinder;
            new (): TagFinder;
            Instance: Kusto.Language.Parsing.CommandGrammar.TagFinder | null;
            /**
             * Gets the non-empty tag or null.
             *
             * @static
             * @private
             * @this Kusto.Language.Parsing.CommandGrammar.TagFinder
             * @memberof Kusto.Language.Parsing.CommandGrammar.TagFinder
             * @param   {Kusto.Language.Parsing.Parser$1}      parser    
             * @param   {System.Collections.Generic.List$1}    tags
             * @return  {boolean}
             */
        }

        interface CommandParserInfo {
            Kind: string | null;
            Parser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Command> | null;
        }
        interface CommandParserInfoFunc extends Function {
            prototype: CommandParserInfo;
            new (kind: string | null, parser: Kusto.Language.Parsing.Parser$2<Kusto.Language.Parsing.LexicalToken,Kusto.Language.Syntax.Command> | null): CommandParserInfo;
        }

        interface RecentGrammar {
            ServerKind: string | null;
            Grammar: Kusto.Language.Parsing.CommandGrammar | null;
        }
        interface RecentGrammarFunc extends Function {
            prototype: RecentGrammar;
            new (serverKind: string | null, grammar: Kusto.Language.Parsing.CommandGrammar | null): RecentGrammar;
        }
    }

    /**
     * An abstraction over a sequence of input items.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Parsing.Source$1
     */
    interface Source$1<T> {
        Cache: Kusto.Language.Parsing.SourceCache | null;
        /**
         * Gets the nth item from the current position in the source.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Parsing.Source$1
         * @memberof Kusto.Language.Parsing.Source$1
         * @param   {number}    n
         * @return  {T}
         */
        Peek(n?: number): T;
        /**
         * Returns true if the position is beyond the last element.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Parsing.Source$1
         * @memberof Kusto.Language.Parsing.Source$1
         * @param   {number}     n
         * @return  {boolean}
         */
        IsEnd(n?: number): boolean;
    }
    interface Source$1Func extends Function {
        <T>($T: Bridge.TypeRef<T>): {
            prototype: Source$1<T>;
            new (): Source$1<T>;
        }
    }
    var Source$1: Source$1Func;

    /**
     * A predifined set of common character parsers that produce no output.
     These are typically used to do look-ahead scanning.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Parsing.CharScanners
     */
    interface CharScanners {
    }
    interface CharScannersFunc extends Function {
        prototype: CharScanners;
        new (): CharScanners;
        /**
         * A parser that matches a single letter.
         *
         * @static
         * @public
         * @memberof Kusto.Language.Parsing.CharScanners
         * @type Kusto.Language.Parsing.Parser$1
         */
        Letter: Kusto.Language.Parsing.Parser$1<number> | null;
        /**
         * A parser that matches a single digit.
         *
         * @static
         * @public
         * @memberof Kusto.Language.Parsing.CharScanners
         * @type Kusto.Language.Parsing.Parser$1
         */
        Digit: Kusto.Language.Parsing.Parser$1<number> | null;
        /**
         * A parser that matches a single hexadecimal digit.
         *
         * @static
         * @public
         * @memberof Kusto.Language.Parsing.CharScanners
         * @type Kusto.Language.Parsing.Parser$1
         */
        HexDigit: Kusto.Language.Parsing.Parser$1<number> | null;
        /**
         * A parser that matches a single whitespace character.
         *
         * @static
         * @public
         * @memberof Kusto.Language.Parsing.CharScanners
         * @type Kusto.Language.Parsing.Parser$1
         */
        Whitespace: Kusto.Language.Parsing.Parser$1<number> | null;
        /**
         * A parser that matches a line break.
         *
         * @static
         * @public
         * @memberof Kusto.Language.Parsing.CharScanners
         * @type Kusto.Language.Parsing.Parser$1
         */
        LineBreak: Kusto.Language.Parsing.Parser$1<number> | null;
        /**
         * A parser that matches a sequence of text characters.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CharScanners
         * @memberof Kusto.Language.Parsing.CharScanners
         * @param   {string}                             text          
         * @param   {boolean}                            ignoreCase
         * @return  {Kusto.Language.Parsing.Parser$1}
         */
        Chars(text: string | null, ignoreCase?: boolean): Kusto.Language.Parsing.Parser$1<number> | null;
        /**
         * A parser that matches a single character.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CharScanners
         * @memberof Kusto.Language.Parsing.CharScanners
         * @param   {number}                             ch            
         * @param   {boolean}                            ignoreCase
         * @return  {Kusto.Language.Parsing.Parser$1}
         */
        Char(ch: number, ignoreCase?: boolean): Kusto.Language.Parsing.Parser$1<number> | null;
    }
    var CharScanners: CharScannersFunc;

    interface CommandFacts {
    }
    interface CommandFactsFunc extends Function {
        prototype: CommandFacts;
        new (): CommandFacts;
        /**
         * True if the line at the given line start appears to be the start of a Kusto command.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandFacts
         * @memberof Kusto.Language.Parsing.CommandFacts
         * @param   {string}     text         
         * @param   {number}     lineStart
         * @return  {boolean}
         */
        IsCommandStartLine(text: string | null, lineStart: number): boolean;
        /**
         * Produces a list of kusto command block starts, where each block starts with a new command
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandFacts
         * @memberof Kusto.Language.Parsing.CommandFacts
         * @param   {string}                                        text
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetCommandBlockStarts(text: string | null): System.Collections.Generic.IReadOnlyList$1<number> | null;
        /**
         * Produces a list of kusto command block starts, where each block starts with a new command
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandFacts
         * @memberof Kusto.Language.Parsing.CommandFacts
         * @param   {string}                                        text          
         * @param   {System.Collections.Generic.IReadOnlyList$1}    lineStarts
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetCommandBlockStarts$1(text: string | null, lineStarts: System.Collections.Generic.IReadOnlyList$1<number> | null): System.Collections.Generic.IReadOnlyList$1<number> | null;
        /**
         * Produces a list of command block texts from a script text of multiple commands.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandFacts
         * @memberof Kusto.Language.Parsing.CommandFacts
         * @param   {string}                                        text
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetCommandBlockTexts(text: string | null): System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * Produce a list of command texts from a script texts of multiple commands,
         where commands have leading and trailing comment and whitespace lines removed.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.CommandFacts
         * @memberof Kusto.Language.Parsing.CommandFacts
         * @param   {string}                                        text
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetCommandTexts(text: string | null): System.Collections.Generic.IReadOnlyList$1<string> | null;
    }
    var CommandFacts: CommandFactsFunc;

    /**
     * Builds a textual representation of a parser's grammar.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Parsing.Describer
     */
    interface Describer {
    }
    interface DescriberFunc extends Function {
        prototype: Describer;
        Writer$1: Kusto.Language.Parsing.Describer.Writer$1Func;
        new (): Describer;
        /**
         * Returns a textual representation of a parser's grammar.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.Describer
         * @memberof Kusto.Language.Parsing.Describer
         * @param   {Function}                           TInput          
         * @param   {Kusto.Language.Parsing.Parser$1}    parser          
         * @param   {boolean}                            showRequired
         * @return  {string}
         */
        Describe<TInput>(TInput: {prototype: TInput}, parser: Kusto.Language.Parsing.Parser$1<TInput> | null, showRequired?: boolean): string | null;
    }
    var Describer: DescriberFunc;
    module Describer {
        interface Writer$1<TInput> extends Kusto.Language.Parsing.ParserVisitor$1<TInput> {
            toString(): string | null;
            Visit(parser: Kusto.Language.Parsing.Parser$1<TInput> | null): void;
            VisitApply<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ApplyParser$3<TInput,TLeft,TOutput> | null): void;
            VisitBest$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.BestParser$2<TInput,TOutput> | null): void;
            VisitBest(parser: Kusto.Language.Parsing.BestParser$1<TInput> | null): void;
            VisitConvert<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ConvertParser$2<TInput,TOutput> | null): void;
            VisitFails(parser: Kusto.Language.Parsing.FailsParser$1<TInput> | null): void;
            VisitFirst$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.FirstParser$2<TInput,TOutput> | null): void;
            VisitFirst(parser: Kusto.Language.Parsing.FirstParser$1<TInput> | null): void;
            VisitForward<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ForwardParser$2<TInput,TOutput> | null): void;
            VisitIf$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.IfParser$2<TInput,TOutput> | null): void;
            VisitIf(parser: Kusto.Language.Parsing.IfParser$1<TInput> | null): void;
            VisitLimit<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.LimitParser$2<TInput,TOutput> | null): void;
            VisitMap<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MapParser$2<TInput,TOutput> | null): void;
            VisitMatch(parser: Kusto.Language.Parsing.MatchParser$1<TInput> | null): void;
            VisitMatch$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MatchParser$2<TInput,TOutput> | null): void;
            VisitNot(parser: Kusto.Language.Parsing.NotParser$1<TInput> | null): void;
            VisitOneOrMore(parser: Kusto.Language.Parsing.OneOrMoreParser$1<TInput> | null): void;
            VisitOptional<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.OptionalParser$2<TInput,TOutput> | null): void;
            VisitProduce<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ProduceParser$2<TInput,TOutput> | null): void;
            VisitRequired<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RequiredParser$2<TInput,TOutput> | null): void;
            VisitRule<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RuleParser$2<TInput,TOutput> | null): void;
            VisitSequence(parser: Kusto.Language.Parsing.SequenceParser$1<TInput> | null): void;
            VisitZeroOrMore(parser: Kusto.Language.Parsing.ZeroOrMoreParser$1<TInput> | null): void;
        }
        interface Writer$1Func extends Function {
            <TInput>($TInput: Bridge.TypeRef<TInput>): {
                prototype: Writer$1<TInput>;
                new (showRequired: boolean): Writer$1<TInput>;
            }
        }
    }

    interface ElementAndSeparator$2<TElement,TSeparator> {
        Element: TElement;
        Separator: TSeparator;
        $clone(to: Kusto.Language.Parsing.ElementAndSeparator$2<TElement,TSeparator>): Kusto.Language.Parsing.ElementAndSeparator$2<TElement,TSeparator>;
    }
    interface ElementAndSeparator$2Func extends Function {
        <TElement, TSeparator>($TElement: Bridge.TypeRef<TElement>, $TSeparator: Bridge.TypeRef<TSeparator>): {
            prototype: ElementAndSeparator$2<TElement,TSeparator>;
            $ctor1: {
                new (element: TElement, separator: TSeparator): ElementAndSeparator$2<TElement,TSeparator>
            };
            new (): ElementAndSeparator$2<TElement,TSeparator>;
            ctor: {
                new (): ElementAndSeparator$2<TElement,TSeparator>
            };
        }
    }
    var ElementAndSeparator$2: ElementAndSeparator$2Func;

    /**
     * A parsed value and its source offset.
     *
     * @public
     * @class Kusto.Language.Parsing.OffsetValue$1
     */
    interface OffsetValue$1<TValue> {
        /**
         * The text offset of the value in the source.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.OffsetValue$1
         * @type number
         */
        Offset: number;
        /**
         * The value located at the offset.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.OffsetValue$1
         * @type TValue
         */
        Value: TValue;
        getHashCode(): number;
        equals(o: Kusto.Language.Parsing.OffsetValue$1<TValue>): boolean;
        $clone(to: Kusto.Language.Parsing.OffsetValue$1<TValue>): Kusto.Language.Parsing.OffsetValue$1<TValue>;
    }
    interface OffsetValue$1Func extends Function {
        <TValue>($TValue: Bridge.TypeRef<TValue>): {
            prototype: OffsetValue$1<TValue>;
            /**
             * Constructs a new {@link }
             *
             * @instance
             * @public
             * @this Kusto.Language.Parsing.OffsetValue$1
             * @memberof Kusto.Language.Parsing.OffsetValue$1
             * @param   {number}    offset    The text offset of the value in the source.
             * @param   {TValue}    value     The value located at the offset.
             * @return  {void}
             */
            $ctor1: {
                new (offset: number, value: TValue): OffsetValue$1<TValue>
            };
            new (): OffsetValue$1<TValue>;
            ctor: {
                new (): OffsetValue$1<TValue>
            };
        }
    }
    var OffsetValue$1: OffsetValue$1Func;

    interface ParseResult$1<TOutput> {
        /**
         * The number of input items consumed by the parser or a negative number if the parsing failed.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Parsing.ParseResult$1
         * @function Length
         * @type number
         */
        Length: number;
        /**
         * The single produced result of the parser.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Parsing.ParseResult$1
         * @function Value
         * @type TOutput
         */
        Value: TOutput;
        /**
         * True if the parse was successful.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Parsing.ParseResult$1
         * @function Succeeded
         * @type boolean
         */
        Succeeded: boolean;
        $clone(to: Kusto.Language.Parsing.ParseResult$1<TOutput>): Kusto.Language.Parsing.ParseResult$1<TOutput>;
    }
    interface ParseResult$1Func extends Function {
        <TOutput>($TOutput: Bridge.TypeRef<TOutput>): {
            prototype: ParseResult$1<TOutput>;
            $ctor1: {
                new (length: number, value: TOutput): ParseResult$1<TOutput>
            };
            new (): ParseResult$1<TOutput>;
            ctor: {
                new (): ParseResult$1<TOutput>
            };
        }
    }
    var ParseResult$1: ParseResult$1Func;

    interface ParserExtensions {
    }
    interface ParserExtensionsFunc extends Function {
        prototype: ParserExtensions;
        new (): ParserExtensions;
        /**
         * Parses the text into the output list.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.ParserExtensions
         * @memberof Kusto.Language.Parsing.ParserExtensions
         * @param   {Kusto.Language.Parsing.Parser$1}      parser    
         * @param   {string}                               text      
         * @param   {System.Collections.Generic.List$1}    output
         * @return  {number}
         */
        Parse$1(parser: Kusto.Language.Parsing.Parser$1<number> | null, text: string | null, output: System.Collections.Generic.List$1<any> | null): number;
        /**
         * Parses the text and returns a single output value in {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.ParserExtensions
         * @memberof Kusto.Language.Parsing.ParserExtensions
         * @param   {Function}                                TOutput    
         * @param   {Kusto.Language.Parsing.Parser$2}         parser     
         * @param   {string}                                  text
         * @return  {Kusto.Language.Parsing.ParseResult$1}
         */
        Parse<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.Parser$2<number,TOutput> | null, text: string | null): Kusto.Language.Parsing.ParseResult$1<TOutput>;
        /**
         * Returns true if the parser successfully parses the text. 
         Returns the produced value as an out parameter.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.ParserExtensions
         * @memberof Kusto.Language.Parsing.ParserExtensions
         * @param   {Function}                           TOutput    
         * @param   {Kusto.Language.Parsing.Parser$2}    parser     
         * @param   {string}                             text       
         * @param   {TOutput}                            value
         * @return  {boolean}
         */
        TryParse<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.Parser$2<number,TOutput> | null, text: string | null, value: {v: TOutput}): boolean;
    }
    var ParserExtensions: ParserExtensionsFunc;

    /**
     * Parser combinators, APIs to combine/construt parsers out of other parsers.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Parsing.Parsers$1
     */
    interface Parsers$1<TInput> {
    }
    interface Parsers$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: Parsers$1<TInput>;
            ElementAndSeparatorProducer$3: Kusto.Language.Parsing.Parsers$1.ElementAndSeparatorProducer$3Func;
            ElementProducer$2: Kusto.Language.Parsing.Parsers$1.ElementProducer$2Func;
            LeftValue$1: Kusto.Language.Parsing.Parsers$1.LeftValue$1Func;
            new (): Parsers$1<TInput>;
            /**
             * A parser that always consumes one input item, but produces nothing.
             *
             * @static
             * @public
             * @readonly
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @type Kusto.Language.Parsing.Parser$1
             */
            Any: Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that consumes all the input items successfully consumed by the specified parsers.
             Fails if any parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Array.<Kusto.Language.Parsing.Parser$1>}    parsers
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            And(parsers: Kusto.Language.Parsing.Parser$1<TInput>[] | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that yields the result of the left-hand applied to the right-hand parser.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TLeft            
             * @param   {Function}                           TOutput          
             * @param   {Kusto.Language.Parsing.Parser$2}    leftParser       
             * @param   {System.Func}                        fnRightParser
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Apply<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, leftParser: Kusto.Language.Parsing.Parser$2<TInput,TLeft> | null, fnRightParser: {(arg: Kusto.Language.Parsing.Parsers$1.LeftValue$1<TInput,TLeft>): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that yields the result of the left-hand parser or the result of applying that value to the right-hand parser.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput          
             * @param   {Kusto.Language.Parsing.Parser$2}    leftParser       
             * @param   {System.Func}                        fnRightParser
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            ApplyOptional<TOutput>(TOutput: {prototype: TOutput}, leftParser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null, fnRightParser: {(arg: Kusto.Language.Parsing.Parsers$1.LeftValue$1<TInput,TOutput>): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A left associative parser that yields the result of the left-hand parser, or the result of applying that value (and subsequent results) to the right-hand parser zero or more times.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput          
             * @param   {Kusto.Language.Parsing.Parser$2}    leftParser       
             * @param   {System.Func}                        fnRightParser
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            ApplyZeroOrMore<TOutput>(TOutput: {prototype: TOutput}, leftParser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null, fnRightParser: {(arg: Kusto.Language.Parsing.Parsers$1.LeftValue$1<TInput,TOutput>): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that yields the result of the parser that consumed the most input items.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Array.<Kusto.Language.Parsing.Parser$1>}    parsers
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Best(parsers: Kusto.Language.Parsing.Parser$1<TInput>[] | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that yields the result of the parser that consumed the most input items.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                   TOutput    
             * @param   {Array.<Kusto.Language.Parsing.Parser$2>}    parsers
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Best$1<TOutput>(TOutput: {prototype: TOutput}, parsers: Kusto.Language.Parsing.Parser$2<TInput,TOutput>[] | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that yields the result of the parser that produced the best output item.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                   TOutput     
             * @param   {Array.<Kusto.Language.Parsing.Parser$2>}    parsers     
             * @param   {System.Func}                                fnBetter
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Best$2<TOutput>(TOutput: {prototype: TOutput}, parsers: Kusto.Language.Parsing.Parser$2<TInput,TOutput>[] | null, fnBetter: {(arg1: TOutput, arg2: TOutput): boolean} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that yields the result of the parser that consumed the most input items.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                        TOutput    
             * @param   {Array.<Kusto.Language.Parsing.RightParser$2>}    parsers
             * @return  {Kusto.Language.Parsing.RightParser$2}
             */
            Best$3<TOutput>(TOutput: {prototype: TOutput}, parsers: Kusto.Language.Parsing.RightParser$2<TInput,TOutput>[] | null): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
            /**
             * A parser that converts all the successfully scanned input items into a single output item.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                 TOutput     
             * @param   {Kusto.Language.Parsing.Parser$1}          pattern     
             * @param   {Kusto.Language.Parsing.SourceProducer}    producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Convert$1<TOutput>(TOutput: {prototype: TOutput}, pattern: Kusto.Language.Parsing.Parser$1<TInput> | null, producer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number, length: number): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that converts all the successfully scanned input items into a single output item.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$1}    pattern     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Convert$3<TOutput>(TOutput: {prototype: TOutput}, pattern: Kusto.Language.Parsing.Parser$1<TInput> | null, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<TInput>): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that converts all the successfully scanned input characters into a single output item.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$1}    pattern     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Convert$4<TOutput>(TOutput: {prototype: TOutput}, pattern: Kusto.Language.Parsing.Parser$1<number> | null, producer: {(arg: string): TOutput} | null): Kusto.Language.Parsing.Parser$2<number,TOutput> | null;
            /**
             * A parser that converts all the successfully scanned input items into a single output item.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$1}    pattern     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Convert$2<TOutput>(TOutput: {prototype: TOutput}, pattern: Kusto.Language.Parsing.Parser$1<TInput> | null, producer: {(arg: TInput): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that converts all the successfully scanned input items into a single output item.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput    
             * @param   {Kusto.Language.Parsing.Parser$1}    pattern    
             * @param   {TOutput}                            value
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Convert<TOutput>(TOutput: {prototype: TOutput}, pattern: Kusto.Language.Parsing.Parser$1<TInput> | null, value: TOutput): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that produces the count of the number of successfully scanned and consumed input items.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Kusto.Language.Parsing.Parser$1}    scanner
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Count(scanner: Kusto.Language.Parsing.Parser$1<TInput> | null): Kusto.Language.Parsing.Parser$2<TInput,number> | null;
            /**
             * A parser that succeeds (without consuming input) if the specified parser scan fails. Does not produce output.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Kusto.Language.Parsing.Parser$1}    parser
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Fails(parser: Kusto.Language.Parsing.Parser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that yields the result of the first parser to succeed.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                   TOutput    
             * @param   {Array.<Kusto.Language.Parsing.Parser$2>}    parsers
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            First$1<TOutput>(TOutput: {prototype: TOutput}, parsers: Kusto.Language.Parsing.Parser$2<TInput,TOutput>[] | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that yields the result of the first parser to succeed.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Array.<Kusto.Language.Parsing.Parser$1>}    parsers
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            First(parsers: Kusto.Language.Parsing.Parser$1<TInput>[] | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that yields the result of the first parser to succeed.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                        TOutput    
             * @param   {Array.<Kusto.Language.Parsing.RightParser$2>}    parsers
             * @return  {Kusto.Language.Parsing.RightParser$2}
             */
            First$2<TOutput>(TOutput: {prototype: TOutput}, parsers: Kusto.Language.Parsing.RightParser$2<TInput,TOutput>[] | null): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
            /**
             * A parser that forwards to a deferred parser.
             This parser is typically used to resolve cycles in grammar.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput           
             * @param   {System.Func}                        deferredParser
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Forward$1<TOutput>(TOutput: {prototype: TOutput}, deferredParser: {(): Kusto.Language.Parsing.Parser$2<TInput,TOutput>} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that forwards to a deferred parser.
             This parser is typically used to resolve cycles in grammar.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput    
             * @param   {Kusto.Language.Parsing.Parser$2}    parser
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Forward<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that produces the result of the specified parser only if a scan of the test parser succeeds.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput    
             * @param   {Kusto.Language.Parsing.Parser$1}    test       
             * @param   {Kusto.Language.Parsing.Parser$2}    parser
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            If$1<TOutput>(TOutput: {prototype: TOutput}, test: Kusto.Language.Parsing.Parser$1<TInput> | null, parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that produces the result of the specified parser only if a scan of the test parser succeeds.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                TOutput    
             * @param   {Kusto.Language.Parsing.Parser$1}         test       
             * @param   {Kusto.Language.Parsing.RightParser$2}    parser
             * @return  {Kusto.Language.Parsing.RightParser$2}
             */
            If$2<TOutput>(TOutput: {prototype: TOutput}, test: Kusto.Language.Parsing.Parser$1<TInput> | null, parser: Kusto.Language.Parsing.RightParser$2<TInput,TOutput>): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
            /**
             * A parser that produces the result of the specified parser only if a scan of the test parser succeeds.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Kusto.Language.Parsing.Parser$1}    test      
             * @param   {Kusto.Language.Parsing.Parser$1}    parser
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            If(test: Kusto.Language.Parsing.Parser$1<TInput> | null, parser: Kusto.Language.Parsing.Parser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that constrains the amount of input that can be accessed by another parser.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput    
             * @param   {Kusto.Language.Parsing.Parser$1}    limiter    
             * @param   {Kusto.Language.Parsing.Parser$2}    limited
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Limit<TOutput>(TOutput: {prototype: TOutput}, limiter: Kusto.Language.Parsing.Parser$1<TInput> | null, limited: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * Creates a parser that parses a list of elements.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TElement         
             * @param   {Function}                           TProducer        
             * @param   {Kusto.Language.Parsing.Parser$2}    elementParser    The parser for each element.
             * @param   {boolean}                            oneOrMore        If true, the generated parser expects at least one element to exist.
             * @param   {System.Func}                        producer         A function that converts the series of elements into the produced value.
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            List<TElement, TProducer>(TElement: {prototype: TElement}, TProducer: {prototype: TProducer}, elementParser: Kusto.Language.Parsing.Parser$2<TInput,TElement> | null, oneOrMore: boolean, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<TElement>): TProducer} | null): Kusto.Language.Parsing.Parser$2<TInput,TProducer> | null;
            /**
             * Creates a parser that parses a list of elements.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TElement            
             * @param   {Function}                           TProducer           
             * @param   {Kusto.Language.Parsing.Parser$2}    elementParser       The parser for each element.
             * @param   {System.Func}                        fnMissingElement    An optional function that constructs a new element to be used when an expected element is missing.
             * @param   {boolean}                            oneOrMore           If true, the generated parser expects at least one element to exist.
             * @param   {System.Func}                        producer            A function that converts the series of elements into the produced value.
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            List$1<TElement, TProducer>(TElement: {prototype: TElement}, TProducer: {prototype: TProducer}, elementParser: Kusto.Language.Parsing.Parser$2<TInput,TElement> | null, fnMissingElement: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TElement} | null, oneOrMore: boolean, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<TElement>): TProducer} | null): Kusto.Language.Parsing.Parser$2<TInput,TProducer> | null;
            /**
             * Creates a parser that parses a list of elements and separators.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TElement                     
             * @param   {Function}                           TSeparator                   
             * @param   {Function}                           TProducer                    
             * @param   {Kusto.Language.Parsing.Parser$2}    elementParser                The parser for the primary element.
             * @param   {Kusto.Language.Parsing.Parser$2}    separatorParser              The parser for each separator.
             * @param   {Kusto.Language.Parsing.Parser$2}    secondaryElementParser       The parser for any elements after the first separator.
             * @param   {System.Func}                        fnMissingElement             An optional function that constructs a new element to be used when the element is missing (between two separators).
             * @param   {System.Func}                        fnMissingSeparator           An optional function that constructs a new separator instance to be used when the separator is missing (between two elements).
             * @param   {System.Func}                        fnMissingSecondaryElement    An optional function that constructs a new element to be used when a second element is missing (between two separators).
             * @param   {Kusto.Language.Parsing.Parser$1}    endOfList                    An optional parser that quickly determines if there are not more elements.
             * @param   {boolean}                            oneOrMore                    If true, the generated parser expects at least one element to exist.
             * @param   {boolean}                            allowTrailingSeparator       If true, it is legal for a final separator to occur without a following element.
             * @param   {System.Func}                        producer                     A function that converts the series of elements and separators into the produced value.
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            List$3<TElement, TSeparator, TProducer>(TElement: {prototype: TElement}, TSeparator: {prototype: TSeparator}, TProducer: {prototype: TProducer}, elementParser: Kusto.Language.Parsing.Parser$2<TInput,TElement> | null, separatorParser: Kusto.Language.Parsing.Parser$2<TInput,TSeparator> | null, secondaryElementParser: Kusto.Language.Parsing.Parser$2<TInput,TElement> | null, fnMissingElement: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TElement} | null, fnMissingSeparator: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TSeparator} | null, fnMissingSecondaryElement: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TElement} | null, endOfList: Kusto.Language.Parsing.Parser$1<TInput> | null, oneOrMore: boolean, allowTrailingSeparator: boolean, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.ElementAndSeparator$2<TElement,TSeparator>>): TProducer} | null): Kusto.Language.Parsing.Parser$2<TInput,TProducer> | null;
            /**
             * Creates a parser that parses a list of elements and separators.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TElement                  
             * @param   {Function}                           TSeparator                
             * @param   {Function}                           TProducer                 
             * @param   {Kusto.Language.Parsing.Parser$2}    elementParser             The parser for the primary element.
             * @param   {Kusto.Language.Parsing.Parser$2}    separatorParser           The parser for the separator.
             * @param   {System.Func}                        fnMissingElement          An optional function that constructs a new element to be used when the element is missing (between two separators).
             * @param   {System.Func}                        fnMissingSeparator        An optional function that constructs a new separator instance to be used when the separator is missing (between two elements).
             * @param   {Kusto.Language.Parsing.Parser$1}    endOfList                 An optional parser that quickly determines if there are not more elements.
             * @param   {boolean}                            oneOrMore                 If true, the generated parser expects at least one element to exist.
             * @param   {boolean}                            allowTrailingSeparator    If true, it is legal for a final separator to occur without a following element.
             * @param   {System.Func}                        producer                  A function that converts the series of elements and separators into the produced value.
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            List$5<TElement, TSeparator, TProducer>(TElement: {prototype: TElement}, TSeparator: {prototype: TSeparator}, TProducer: {prototype: TProducer}, elementParser: Kusto.Language.Parsing.Parser$2<TInput,TElement> | null, separatorParser: Kusto.Language.Parsing.Parser$2<TInput,TSeparator> | null, fnMissingElement: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TElement} | null, fnMissingSeparator: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TSeparator} | null, endOfList: Kusto.Language.Parsing.Parser$1<TInput> | null, oneOrMore: boolean, allowTrailingSeparator: boolean, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.ElementAndSeparator$2<TElement,TSeparator>>): TProducer} | null): Kusto.Language.Parsing.Parser$2<TInput,TProducer> | null;
            /**
             * Creates a parser that parses a list of elements and separators.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TElement                  
             * @param   {Function}                           TSeparator                
             * @param   {Function}                           TProducer                 
             * @param   {Kusto.Language.Parsing.Parser$2}    elementParser             The parser for the primary element.
             * @param   {Kusto.Language.Parsing.Parser$2}    separatorParser           The parser for the separator.
             * @param   {Kusto.Language.Parsing.Parser$2}    secondaryElementParser    The parser for any elements after the first separator.
             * @param   {boolean}                            oneOrMore                 If true, the generated parser expects at least one element to exist.
             * @param   {System.Func}                        producer                  A function that converts the series of elements and separators into the produced value.
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            List$2<TElement, TSeparator, TProducer>(TElement: {prototype: TElement}, TSeparator: {prototype: TSeparator}, TProducer: {prototype: TProducer}, elementParser: Kusto.Language.Parsing.Parser$2<TInput,TElement> | null, separatorParser: Kusto.Language.Parsing.Parser$2<TInput,TSeparator> | null, secondaryElementParser: Kusto.Language.Parsing.Parser$2<TInput,TElement> | null, oneOrMore: boolean, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.ElementAndSeparator$2<TElement,TSeparator>>): TProducer} | null): Kusto.Language.Parsing.Parser$2<TInput,TProducer> | null;
            /**
             * Creates a parser that parses a list of elements and separators.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TElement           
             * @param   {Function}                           TSeparator         
             * @param   {Function}                           TProducer          
             * @param   {Kusto.Language.Parsing.Parser$2}    elementParser      The parser for the primary element.
             * @param   {Kusto.Language.Parsing.Parser$2}    separatorParser    The parser for the separator.
             * @param   {boolean}                            oneOrMore          If true, the generated parser expects at least one element to exist.
             * @param   {System.Func}                        producer           A function that converts the series of elements and separators into the produced value.
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            List$4<TElement, TSeparator, TProducer>(TElement: {prototype: TElement}, TSeparator: {prototype: TSeparator}, TProducer: {prototype: TProducer}, elementParser: Kusto.Language.Parsing.Parser$2<TInput,TElement> | null, separatorParser: Kusto.Language.Parsing.Parser$2<TInput,TSeparator> | null, oneOrMore: boolean, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.ElementAndSeparator$2<TElement,TSeparator>>): TProducer} | null): Kusto.Language.Parsing.Parser$2<TInput,TProducer> | null;
            /**
             * Creates a parser that parses a list of elements and separators.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TElement                  
             * @param   {Function}                           TSeparator                
             * @param   {Function}                           TProducer                 
             * @param   {Kusto.Language.Parsing.Parser$2}    elementParser             The parser for each element.
             * @param   {Kusto.Language.Parsing.Parser$2}    separatorParser           The parser for each separator.
             * @param   {System.Func}                        fnMissingElement          An optional function that constructs a new element to be used when the element is missing (between two separators).
             * @param   {System.Func}                        fnMissingSeparator        An optional function that constructs a new separator instance to be used when the separator is missing (between two elements).
             * @param   {Kusto.Language.Parsing.Parser$1}    endOfList                 An optional parser that quickly determines if there are no more elements.
             * @param   {boolean}                            oneOrMore                 If true, the generated parser expects at least one element to exist.
             * @param   {boolean}                            allowTrailingSeparator    If true, it is legal for a final separator to occur without a following element.
             * @param   {System.Func}                        producer                  A function that converts the series of elements and separators into the produced value.
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            OList$1<TElement, TSeparator, TProducer>(TElement: {prototype: TElement}, TSeparator: {prototype: TSeparator}, TProducer: {prototype: TProducer}, elementParser: Kusto.Language.Parsing.Parser$2<TInput,TElement> | null, separatorParser: Kusto.Language.Parsing.Parser$2<TInput,TSeparator> | null, fnMissingElement: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TElement} | null, fnMissingSeparator: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TSeparator} | null, endOfList: Kusto.Language.Parsing.Parser$1<TInput> | null, oneOrMore: boolean, allowTrailingSeparator: boolean, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<any>): TProducer} | null): Kusto.Language.Parsing.Parser$2<TInput,TProducer> | null;
            /**
             * Creates a parser that parses a list of elements and separators.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TElement                     
             * @param   {Function}                           TSeparator                   
             * @param   {Function}                           TProducer                    
             * @param   {Kusto.Language.Parsing.Parser$2}    primaryElementParser         The parser for the primary element.
             * @param   {Kusto.Language.Parsing.Parser$2}    separatorParser              The parser for each separator.
             * @param   {Kusto.Language.Parsing.Parser$2}    secondaryElementParser       The parser for any element after the first separator.
             * @param   {System.Func}                        fnMissingPrimaryElement      An optional function that constructs a new element to be used when the primary element is missing (between two separators).
             * @param   {System.Func}                        fnMissingSeparator           An optional function that constructs a new separator instance to be used when the separator is missing (between two elements).
             * @param   {System.Func}                        fnMissingSecondaryElement    An optional function that constructs a new element to be used when the secondary element is missing (between two separators).
             * @param   {Kusto.Language.Parsing.Parser$1}    endOfList                    An optional parser that quickly determines if there are not more elements.
             * @param   {boolean}                            oneOrMore                    If true, the generated parser expects at least one element to exist.
             * @param   {boolean}                            allowTrailingSeparator       If true, it is legal for a final separator to occur without a following element.
             * @param   {System.Func}                        producer                     A function that converts the series of elements and separators into the produced value.
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            OList<TElement, TSeparator, TProducer>(TElement: {prototype: TElement}, TSeparator: {prototype: TSeparator}, TProducer: {prototype: TProducer}, primaryElementParser: Kusto.Language.Parsing.Parser$2<TInput,TElement> | null, separatorParser: Kusto.Language.Parsing.Parser$2<TInput,TSeparator> | null, secondaryElementParser: Kusto.Language.Parsing.Parser$2<TInput,TElement> | null, fnMissingPrimaryElement: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TElement} | null, fnMissingSeparator: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TSeparator} | null, fnMissingSecondaryElement: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TElement} | null, endOfList: Kusto.Language.Parsing.Parser$1<TInput> | null, oneOrMore: boolean, allowTrailingSeparator: boolean, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<any>): TProducer} | null): Kusto.Language.Parsing.Parser$2<TInput,TProducer> | null;
            /**
             * A parser that maps sequences of input values to output values.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                    TOutput          
             * @param   {System.Collections.Generic.IEnumerable$1}    keyValuePairs
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Map<TOutput>(TOutput: {prototype: TOutput}, keyValuePairs: System.Collections.Generic.IEnumerable$1<System.Collections.Generic.KeyValuePair$2<System.Collections.Generic.IEnumerable$1<TInput>,TOutput>> | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that maps sequences of input values to output values.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                    TOutput          
             * @param   {System.Collections.Generic.IEnumerable$1}    keyValuePairs
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Map$1<TOutput>(TOutput: {prototype: TOutput}, keyValuePairs: System.Collections.Generic.IEnumerable$1<System.Collections.Generic.KeyValuePair$2<System.Collections.Generic.IEnumerable$1<TInput>,{(): TOutput}>> | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that consumes one input item if it matches the predicate. Does not produce output.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {System.Func}                        predicate
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Match$3(predicate: {(arg: TInput): boolean} | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that consumes one or more input items.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Kusto.Language.Parsing.SourceConsumer}    consumer
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Match$2(consumer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number): number} | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that consumes one matching input item.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {TInput}                             item
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Match(item: TInput): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that consumes one matching input item.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {TInput}                                           item        
             * @param   {System.Collections.Generic.EqualityComparer$1}    comparer
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Match$1(item: TInput, comparer: System.Collections.Generic.EqualityComparer$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that consumes a matching character.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {number}                             ch            
             * @param   {boolean}                            ignoreCase
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Match$4(ch: number, ignoreCase?: boolean): Kusto.Language.Parsing.Parser$1<number> | null;
            /**
             * A parser that consumes one or more sequential matching characters.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {string}                             text          
             * @param   {boolean}                            ignoreCase
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Match$5(text: string | null, ignoreCase?: boolean): Kusto.Language.Parsing.Parser$1<number> | null;
            /**
             * A parser that producers a single output value from a single input value if it matches the predicate.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput      
             * @param   {System.Func}                        predicate    
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Match$7<TOutput>(TOutput: {prototype: TOutput}, predicate: {(arg: TInput): boolean} | null, producer: {(arg: TInput): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that producers a single output value from one or more input values.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                 TOutput     
             * @param   {Kusto.Language.Parsing.SourceConsumer}    consumer    
             * @param   {Kusto.Language.Parsing.SourceProducer}    producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Match$6<TOutput>(TOutput: {prototype: TOutput}, consumer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number): number} | null, producer: {(source: Kusto.Language.Parsing.Source$1<TInput>, start: number, length: number): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that consumes one input item that matches one of the specified items
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {System.Collections.Generic.IReadOnlyList$1}    items
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            MatchAny$1(items: System.Collections.Generic.IReadOnlyList$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that consumes one input item that matches one of the specified items
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Array.<TInput>}                     items
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            MatchAny(items: TInput[] | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that consumes one input item that matches one of the specified items
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {System.Collections.Generic.IReadOnlyList$1}       items       
             * @param   {System.Collections.Generic.EqualityComparer$1}    comparer
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            MatchAny$2(items: System.Collections.Generic.IReadOnlyList$1<TInput> | null, comparer: System.Collections.Generic.EqualityComparer$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that consumes one or more sequential matching input items.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {System.Collections.Generic.IReadOnlyList$1}    items
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            MatchSequence(items: System.Collections.Generic.IReadOnlyList$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that consumes one or more sequential matching input items.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {System.Collections.Generic.IReadOnlyList$1}       items       
             * @param   {System.Collections.Generic.EqualityComparer$1}    comparer
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            MatchSequence$1(items: System.Collections.Generic.IReadOnlyList$1<TInput> | null, comparer: System.Collections.Generic.EqualityComparer$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that consumes one input item if the specified parser scan fails. Does not produce output.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Kusto.Language.Parsing.Parser$1}    parser
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Not(parser: Kusto.Language.Parsing.Parser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that combines one or more parsed values into a single value.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser      
             * @param   {Function}                           TProducer    
             * @param   {Kusto.Language.Parsing.Parser$2}    parser       
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            OneOrMore$1<TParser, TProducer>(TParser: {prototype: TParser}, TProducer: {prototype: TProducer}, parser: Kusto.Language.Parsing.Parser$2<TInput,TParser> | null, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<TParser>): TProducer} | null): Kusto.Language.Parsing.Parser$2<TInput,TProducer> | null;
            /**
             * A parser that parsers one or more values from the specified parser.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Kusto.Language.Parsing.Parser$1}    parser
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            OneOrMore(parser: Kusto.Language.Parsing.Parser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that combines one or more parsed values into a single value.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser    
             * @param   {Kusto.Language.Parsing.Parser$2}    parser
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            OneOrMoreList<TParser>(TParser: {prototype: TParser}, parser: Kusto.Language.Parsing.Parser$2<TInput,TParser> | null): Kusto.Language.Parsing.Parser$2<TInput,System.Collections.Generic.IReadOnlyList$1<TParser>> | null;
            /**
             * A parser that produces the specified parser's result or nothing if the specified parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Kusto.Language.Parsing.Parser$1}    parser
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Optional(parser: Kusto.Language.Parsing.Parser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that produces the specified parser's result or the default value if the specified parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput    
             * @param   {Kusto.Language.Parsing.Parser$2}    parser
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Optional$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that produces the specified parser's result or the value from the producer function if the specified parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser      
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Optional$2<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null, producer: {(): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that succeeds if any of the specified parsers succeed, consuming the greatest number of input items consumed.
             This parser is a synonym for {@link }.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Array.<Kusto.Language.Parsing.Parser$1>}    parsers
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Or(parsers: Kusto.Language.Parsing.Parser$1<TInput>[] | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that combines one or more values produced by a single parser into a new value.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$1}    parser      
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Produce<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.Parser$1<TInput> | null, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<any>): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that combines one or more values produced by a single parser into a new value.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TElement    
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$1}    parser      
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Produce$1<TElement, TOutput>(TElement: {prototype: TElement}, TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.Parser$1<TInput> | null, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<TElement>): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that produces the specified parsers result or the value of the producer.
             This parser behaves like optional, except that a producer must be specified and has UI behavior differences.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser      
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Required<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null, producer: {(): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that produces the specified parsers result or the value of the producer.
             This parser behaves like optional, except that a producer must be specified and has UI behavior differences.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser      
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Required$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null, producer: {(arg1: Kusto.Language.Parsing.Source$1<TInput>, arg2: number): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that converts the output of one parser into a new value.
             If the specified parser fails, then this parser fails too.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser1    
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser1     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Rule<TParser1, TOutput>(TParser1: {prototype: TParser1}, TOutput: {prototype: TOutput}, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, producer: {(arg: TParser1): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that combines the output of multiple parsers into a new value.
             If either parser fails, then this parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser1    
             * @param   {Function}                           TParser2    
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser1     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser2     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Rule$1<TParser1, TParser2, TOutput>(TParser1: {prototype: TParser1}, TParser2: {prototype: TParser2}, TOutput: {prototype: TOutput}, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, parser2: Kusto.Language.Parsing.Parser$2<TInput,TParser2> | null, producer: {(arg1: TParser1, arg2: TParser2): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that combines the output of multiple parsers into a new value.
             If any parser in the sequence fails, then this parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser1    
             * @param   {Function}                           TParser2    
             * @param   {Function}                           TParser3    
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser1     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser2     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser3     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Rule$2<TParser1, TParser2, TParser3, TOutput>(TParser1: {prototype: TParser1}, TParser2: {prototype: TParser2}, TParser3: {prototype: TParser3}, TOutput: {prototype: TOutput}, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, parser2: Kusto.Language.Parsing.Parser$2<TInput,TParser2> | null, parser3: Kusto.Language.Parsing.Parser$2<TInput,TParser3> | null, producer: {(arg1: TParser1, arg2: TParser2, arg3: TParser3): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that combines the output of multiple parsers into a new value.
             If any parser in the sequence fails, then this parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser1    
             * @param   {Function}                           TParser2    
             * @param   {Function}                           TParser3    
             * @param   {Function}                           TParser4    
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser1     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser2     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser3     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser4     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Rule$3<TParser1, TParser2, TParser3, TParser4, TOutput>(TParser1: {prototype: TParser1}, TParser2: {prototype: TParser2}, TParser3: {prototype: TParser3}, TParser4: {prototype: TParser4}, TOutput: {prototype: TOutput}, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, parser2: Kusto.Language.Parsing.Parser$2<TInput,TParser2> | null, parser3: Kusto.Language.Parsing.Parser$2<TInput,TParser3> | null, parser4: Kusto.Language.Parsing.Parser$2<TInput,TParser4> | null, producer: {(arg1: TParser1, arg2: TParser2, arg3: TParser3, arg4: TParser4): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that combines the output of multiple parsers into a new value.
             If any parser in the sequence fails, then this parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser1    
             * @param   {Function}                           TParser2    
             * @param   {Function}                           TParser3    
             * @param   {Function}                           TParser4    
             * @param   {Function}                           TParser5    
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser1     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser2     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser3     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser4     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser5     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Rule$4<TParser1, TParser2, TParser3, TParser4, TParser5, TOutput>(TParser1: {prototype: TParser1}, TParser2: {prototype: TParser2}, TParser3: {prototype: TParser3}, TParser4: {prototype: TParser4}, TParser5: {prototype: TParser5}, TOutput: {prototype: TOutput}, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, parser2: Kusto.Language.Parsing.Parser$2<TInput,TParser2> | null, parser3: Kusto.Language.Parsing.Parser$2<TInput,TParser3> | null, parser4: Kusto.Language.Parsing.Parser$2<TInput,TParser4> | null, parser5: Kusto.Language.Parsing.Parser$2<TInput,TParser5> | null, producer: {(arg1: TParser1, arg2: TParser2, arg3: TParser3, arg4: TParser4, arg5: TParser5): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that combines the output of multiple parsers into a new value.
             If any parser in the sequence fails, then this parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser1    
             * @param   {Function}                           TParser2    
             * @param   {Function}                           TParser3    
             * @param   {Function}                           TParser4    
             * @param   {Function}                           TParser5    
             * @param   {Function}                           TParser6    
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser1     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser2     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser3     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser4     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser5     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser6     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Rule$5<TParser1, TParser2, TParser3, TParser4, TParser5, TParser6, TOutput>(TParser1: {prototype: TParser1}, TParser2: {prototype: TParser2}, TParser3: {prototype: TParser3}, TParser4: {prototype: TParser4}, TParser5: {prototype: TParser5}, TParser6: {prototype: TParser6}, TOutput: {prototype: TOutput}, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, parser2: Kusto.Language.Parsing.Parser$2<TInput,TParser2> | null, parser3: Kusto.Language.Parsing.Parser$2<TInput,TParser3> | null, parser4: Kusto.Language.Parsing.Parser$2<TInput,TParser4> | null, parser5: Kusto.Language.Parsing.Parser$2<TInput,TParser5> | null, parser6: Kusto.Language.Parsing.Parser$2<TInput,TParser6> | null, producer: {(arg1: TParser1, arg2: TParser2, arg3: TParser3, arg4: TParser4, arg5: TParser5, arg6: TParser6): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that combines the output of multiple parsers into a new value.
             If any parser in the sequence fails, then this parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser1    
             * @param   {Function}                           TParser2    
             * @param   {Function}                           TParser3    
             * @param   {Function}                           TParser4    
             * @param   {Function}                           TParser5    
             * @param   {Function}                           TParser6    
             * @param   {Function}                           TParser7    
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser1     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser2     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser3     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser4     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser5     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser6     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser7     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Rule$6<TParser1, TParser2, TParser3, TParser4, TParser5, TParser6, TParser7, TOutput>(TParser1: {prototype: TParser1}, TParser2: {prototype: TParser2}, TParser3: {prototype: TParser3}, TParser4: {prototype: TParser4}, TParser5: {prototype: TParser5}, TParser6: {prototype: TParser6}, TParser7: {prototype: TParser7}, TOutput: {prototype: TOutput}, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, parser2: Kusto.Language.Parsing.Parser$2<TInput,TParser2> | null, parser3: Kusto.Language.Parsing.Parser$2<TInput,TParser3> | null, parser4: Kusto.Language.Parsing.Parser$2<TInput,TParser4> | null, parser5: Kusto.Language.Parsing.Parser$2<TInput,TParser5> | null, parser6: Kusto.Language.Parsing.Parser$2<TInput,TParser6> | null, parser7: Kusto.Language.Parsing.Parser$2<TInput,TParser7> | null, producer: {(arg1: TParser1, arg2: TParser2, arg3: TParser3, arg4: TParser4, arg5: TParser5, arg6: TParser6, arg7: TParser7): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that combines the output of multiple parsers into a new value.
             If any parser in the sequence fails, then this parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser1    
             * @param   {Function}                           TParser2    
             * @param   {Function}                           TParser3    
             * @param   {Function}                           TParser4    
             * @param   {Function}                           TParser5    
             * @param   {Function}                           TParser6    
             * @param   {Function}                           TParser7    
             * @param   {Function}                           TParser8    
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser1     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser2     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser3     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser4     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser5     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser6     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser7     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser8     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Rule$7<TParser1, TParser2, TParser3, TParser4, TParser5, TParser6, TParser7, TParser8, TOutput>(TParser1: {prototype: TParser1}, TParser2: {prototype: TParser2}, TParser3: {prototype: TParser3}, TParser4: {prototype: TParser4}, TParser5: {prototype: TParser5}, TParser6: {prototype: TParser6}, TParser7: {prototype: TParser7}, TParser8: {prototype: TParser8}, TOutput: {prototype: TOutput}, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, parser2: Kusto.Language.Parsing.Parser$2<TInput,TParser2> | null, parser3: Kusto.Language.Parsing.Parser$2<TInput,TParser3> | null, parser4: Kusto.Language.Parsing.Parser$2<TInput,TParser4> | null, parser5: Kusto.Language.Parsing.Parser$2<TInput,TParser5> | null, parser6: Kusto.Language.Parsing.Parser$2<TInput,TParser6> | null, parser7: Kusto.Language.Parsing.Parser$2<TInput,TParser7> | null, parser8: Kusto.Language.Parsing.Parser$2<TInput,TParser8> | null, producer: {(arg1: TParser1, arg2: TParser2, arg3: TParser3, arg4: TParser4, arg5: TParser5, arg6: TParser6, arg7: TParser7, arg8: TParser8): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that combines the output of multiple parsers into a new value.
             If any parser in the sequence fails, then this parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser1    
             * @param   {Function}                           TParser2    
             * @param   {Function}                           TParser3    
             * @param   {Function}                           TParser4    
             * @param   {Function}                           TParser5    
             * @param   {Function}                           TParser6    
             * @param   {Function}                           TParser7    
             * @param   {Function}                           TParser8    
             * @param   {Function}                           TParser9    
             * @param   {Function}                           TOutput     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser1     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser2     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser3     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser4     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser5     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser6     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser7     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser8     
             * @param   {Kusto.Language.Parsing.Parser$2}    parser9     
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Rule$8<TParser1, TParser2, TParser3, TParser4, TParser5, TParser6, TParser7, TParser8, TParser9, TOutput>(TParser1: {prototype: TParser1}, TParser2: {prototype: TParser2}, TParser3: {prototype: TParser3}, TParser4: {prototype: TParser4}, TParser5: {prototype: TParser5}, TParser6: {prototype: TParser6}, TParser7: {prototype: TParser7}, TParser8: {prototype: TParser8}, TParser9: {prototype: TParser9}, TOutput: {prototype: TOutput}, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, parser2: Kusto.Language.Parsing.Parser$2<TInput,TParser2> | null, parser3: Kusto.Language.Parsing.Parser$2<TInput,TParser3> | null, parser4: Kusto.Language.Parsing.Parser$2<TInput,TParser4> | null, parser5: Kusto.Language.Parsing.Parser$2<TInput,TParser5> | null, parser6: Kusto.Language.Parsing.Parser$2<TInput,TParser6> | null, parser7: Kusto.Language.Parsing.Parser$2<TInput,TParser7> | null, parser8: Kusto.Language.Parsing.Parser$2<TInput,TParser8> | null, parser9: Kusto.Language.Parsing.Parser$2<TInput,TParser9> | null, producer: {(arg1: TParser1, arg2: TParser2, arg3: TParser3, arg4: TParser4, arg5: TParser5, arg6: TParser6, arg7: TParser7, arg8: TParser8, arg9: TParser9): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that takes only the 'left' side parser's value and converts it into a new value.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                        TLeft       
             * @param   {Function}                                        TOutput     
             * @param   {Kusto.Language.Parsing.Parsers$1.LeftValue$1}    left        
             * @param   {System.Func}                                     producer
             * @return  {Kusto.Language.Parsing.RightParser$2}
             */
            Rule$9<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, left: Kusto.Language.Parsing.Parsers$1.LeftValue$1<TInput,TLeft>, producer: {(arg: TLeft): TOutput} | null): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
            /**
             * A parser that combines the 'left' side parser's value with the values from a sequence of parsers into a new value.
             This parser fails if any of the parsers in the sequence fail.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                        TLeft       
             * @param   {Function}                                        TParser1    
             * @param   {Function}                                        TOutput     
             * @param   {Kusto.Language.Parsing.Parsers$1.LeftValue$1}    left        
             * @param   {Kusto.Language.Parsing.Parser$2}                 parser1     
             * @param   {System.Func}                                     producer
             * @return  {Kusto.Language.Parsing.RightParser$2}
             */
            Rule$10<TLeft, TParser1, TOutput>(TLeft: {prototype: TLeft}, TParser1: {prototype: TParser1}, TOutput: {prototype: TOutput}, left: Kusto.Language.Parsing.Parsers$1.LeftValue$1<TInput,TLeft>, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, producer: {(arg1: TLeft, arg2: TParser1): TOutput} | null): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
            /**
             * A parser that combines the 'left' side parser's value with the values from a sequence of parsers into a new value.
             This parser fails if any of the parsers in the sequence fail.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                        TLeft       
             * @param   {Function}                                        TParser1    
             * @param   {Function}                                        TParser2    
             * @param   {Function}                                        TOutput     
             * @param   {Kusto.Language.Parsing.Parsers$1.LeftValue$1}    left        
             * @param   {Kusto.Language.Parsing.Parser$2}                 parser1     
             * @param   {Kusto.Language.Parsing.Parser$2}                 parser2     
             * @param   {System.Func}                                     producer
             * @return  {Kusto.Language.Parsing.RightParser$2}
             */
            Rule$11<TLeft, TParser1, TParser2, TOutput>(TLeft: {prototype: TLeft}, TParser1: {prototype: TParser1}, TParser2: {prototype: TParser2}, TOutput: {prototype: TOutput}, left: Kusto.Language.Parsing.Parsers$1.LeftValue$1<TInput,TLeft>, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, parser2: Kusto.Language.Parsing.Parser$2<TInput,TParser2> | null, producer: {(arg1: TLeft, arg2: TParser1, arg3: TParser2): TOutput} | null): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
            /**
             * A parser that combines the 'left' side parser's value with the values from a sequence of parsers into a new value.
             This parser fails if any of the parsers in the sequence fail.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                                        TLeft       
             * @param   {Function}                                        TParser1    
             * @param   {Function}                                        TParser2    
             * @param   {Function}                                        TParser3    
             * @param   {Function}                                        TOutput     
             * @param   {Kusto.Language.Parsing.Parsers$1.LeftValue$1}    left        
             * @param   {Kusto.Language.Parsing.Parser$2}                 parser1     
             * @param   {Kusto.Language.Parsing.Parser$2}                 parser2     
             * @param   {Kusto.Language.Parsing.Parser$2}                 parser3     
             * @param   {System.Func}                                     producer
             * @return  {Kusto.Language.Parsing.RightParser$2}
             */
            Rule$12<TLeft, TParser1, TParser2, TParser3, TOutput>(TLeft: {prototype: TLeft}, TParser1: {prototype: TParser1}, TParser2: {prototype: TParser2}, TParser3: {prototype: TParser3}, TOutput: {prototype: TOutput}, left: Kusto.Language.Parsing.Parsers$1.LeftValue$1<TInput,TLeft>, parser1: Kusto.Language.Parsing.Parser$2<TInput,TParser1> | null, parser2: Kusto.Language.Parsing.Parser$2<TInput,TParser2> | null, parser3: Kusto.Language.Parsing.Parser$2<TInput,TParser2> | null, producer: {(arg1: TLeft, arg2: TParser1, arg3: TParser2, arg4: TParser3): TOutput} | null): Kusto.Language.Parsing.RightParser$2<TInput,TOutput>;
            /**
             * A parser that parsers a sequence of values into the output.
             If any parser in the sequence fails, then this parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Array.<Kusto.Language.Parsing.Parser$1>}    parsers
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Sequence(parsers: Kusto.Language.Parsing.Parser$1<TInput>[] | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that parsers a sequence of values into the output.
             If any parser in the sequence fails, then this parser fails.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {System.Collections.Generic.IReadOnlyList$1}    parsers
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            Sequence$1(parsers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.Parser$1<TInput>> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that converts all the successfully scanned input characters into a single output string.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Kusto.Language.Parsing.Parser$1}    pattern
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Text(pattern: Kusto.Language.Parsing.Parser$1<number> | null): Kusto.Language.Parsing.Parser$2<number,string> | null;
            /**
             * A parser that consumes the matching text characters and produces the same text string.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {string}                             text
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Text$1(text: string | null): Kusto.Language.Parsing.Parser$2<number,string> | null;
            /**
             * A parser that converts all the successfully scanned input characters into a single output string and its starting offset.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Kusto.Language.Parsing.Parser$1}    pattern
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            TextAndOffset(pattern: Kusto.Language.Parsing.Parser$1<number> | null): Kusto.Language.Parsing.Parser$2<number,Kusto.Language.Parsing.OffsetValue$1<string>> | null;
            /**
             * A parser that consumes no input but always generates the specified output.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TOutput    
             * @param   {System.Func}                        fnValue
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            Value<TOutput>(TOutput: {prototype: TOutput}, fnValue: {(): TOutput} | null): Kusto.Language.Parsing.Parser$2<TInput,TOutput> | null;
            /**
             * A parser that combines zero or more parsed values into a single value.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser      
             * @param   {Function}                           TProducer    
             * @param   {Kusto.Language.Parsing.Parser$2}    parser       
             * @param   {System.Func}                        producer
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            ZeroOrMore$1<TParser, TProducer>(TParser: {prototype: TParser}, TProducer: {prototype: TProducer}, parser: Kusto.Language.Parsing.Parser$2<TInput,TParser> | null, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<TParser>): TProducer} | null): Kusto.Language.Parsing.Parser$2<TInput,TProducer> | null;
            /**
             * A parser that parses zero or more values from the specified parser.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Kusto.Language.Parsing.Parser$1}    parser
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            ZeroOrMore(parser: Kusto.Language.Parsing.Parser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
            /**
             * A parser that parses zero or more values from the specified parser
             and produces a list of those values.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Function}                           TParser    
             * @param   {Kusto.Language.Parsing.Parser$2}    parser
             * @return  {Kusto.Language.Parsing.Parser$2}
             */
            ZeroOrMoreList<TParser>(TParser: {prototype: TParser}, parser: Kusto.Language.Parsing.Parser$2<TInput,TParser> | null): Kusto.Language.Parsing.Parser$2<TInput,System.Collections.Generic.IReadOnlyList$1<TParser>> | null;
            /**
             * A parser that parses zero or one value from the specified parser.
             *
             * @static
             * @public
             * @this Kusto.Language.Parsing.Parsers$1
             * @memberof Kusto.Language.Parsing.Parsers$1
             * @param   {Kusto.Language.Parsing.Parser$1}    parser
             * @return  {Kusto.Language.Parsing.Parser$1}
             */
            ZeroOrOne(parser: Kusto.Language.Parsing.Parser$1<TInput> | null): Kusto.Language.Parsing.Parser$1<TInput> | null;
        }
    }
    var Parsers$1: Parsers$1Func;
    module Parsers$1 {
        interface ElementAndSeparatorProducer$3<TInput,TElement,TSeparator,TProducer> {
        }
        interface ElementAndSeparatorProducer$3Func extends Function {
            <TInput, TElement, TSeparator, TProducer>($TInput: Bridge.TypeRef<TInput>, $TElement: Bridge.TypeRef<TElement>, $TSeparator: Bridge.TypeRef<TSeparator>, $TProducer: Bridge.TypeRef<TProducer>): {
                prototype: ElementAndSeparatorProducer$3<TInput,TElement,TSeparator,TProducer>;
                new (): ElementAndSeparatorProducer$3<TInput,TElement,TSeparator,TProducer>;
                Produce(output: System.Collections.Generic.IReadOnlyList$1<any> | null, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Parsing.ElementAndSeparator$2<TElement,TSeparator>>): TProducer} | null): TProducer;
            }
        }

        interface ElementProducer$2<TInput,TElement,TProducer> {
        }
        interface ElementProducer$2Func extends Function {
            <TInput, TElement, TProducer>($TInput: Bridge.TypeRef<TInput>, $TElement: Bridge.TypeRef<TElement>, $TProducer: Bridge.TypeRef<TProducer>): {
                prototype: ElementProducer$2<TInput,TElement,TProducer>;
                new (): ElementProducer$2<TInput,TElement,TProducer>;
                Produce(output: System.Collections.Generic.List$1<any> | null, outputStart: number, producer: {(arg: System.Collections.Generic.IReadOnlyList$1<TElement>): TProducer} | null): TProducer;
            }
        }

        interface LeftValue$1<TInput,TLeft> {
            $clone(to: Kusto.Language.Parsing.Parsers$1.LeftValue$1<TInput,TLeft>): Kusto.Language.Parsing.Parsers$1.LeftValue$1<TInput,TLeft>;
        }
        interface LeftValue$1Func extends Function {
            <TInput, TLeft>($TInput: Bridge.TypeRef<TInput>, $TLeft: Bridge.TypeRef<TLeft>): {
                prototype: LeftValue$1<TInput,TLeft>;
                new (): LeftValue$1<TInput,TLeft>;
            }
        }
    }

    interface ParserVisitor$2<TInput,TResult> {
        VisitApply<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ApplyParser$3<TInput,TLeft,TOutput> | null): TResult;
        VisitBest$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.BestParser$2<TInput,TOutput> | null): TResult;
        VisitBest(parser: Kusto.Language.Parsing.BestParser$1<TInput> | null): TResult;
        VisitConvert<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ConvertParser$2<TInput,TOutput> | null): TResult;
        VisitFails(parser: Kusto.Language.Parsing.FailsParser$1<TInput> | null): TResult;
        VisitFirst$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.FirstParser$2<TInput,TOutput> | null): TResult;
        VisitFirst(parser: Kusto.Language.Parsing.FirstParser$1<TInput> | null): TResult;
        VisitForward<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ForwardParser$2<TInput,TOutput> | null): TResult;
        VisitIf$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.IfParser$2<TInput,TOutput> | null): TResult;
        VisitIf(parser: Kusto.Language.Parsing.IfParser$1<TInput> | null): TResult;
        VisitMap<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MapParser$2<TInput,TOutput> | null): TResult;
        VisitMatch(parser: Kusto.Language.Parsing.MatchParser$1<TInput> | null): TResult;
        VisitMatch$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MatchParser$2<TInput,TOutput> | null): TResult;
        VisitNot(parser: Kusto.Language.Parsing.NotParser$1<TInput> | null): TResult;
        VisitOneOrMore(parser: Kusto.Language.Parsing.OneOrMoreParser$1<TInput> | null): TResult;
        VisitOptional<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.OptionalParser$2<TInput,TOutput> | null): TResult;
        VisitProduce<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ProduceParser$2<TInput,TOutput> | null): TResult;
        VisitRequired<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RequiredParser$2<TInput,TOutput> | null): TResult;
        VisitRule<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RuleParser$2<TInput,TOutput> | null): TResult;
        VisitSequence(parser: Kusto.Language.Parsing.SequenceParser$1<TInput> | null): TResult;
        VisitZeroOrMore(parser: Kusto.Language.Parsing.ZeroOrMoreParser$1<TInput> | null): TResult;
        VisitLimit<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.LimitParser$2<TInput,TOutput> | null): TResult;
    }
    interface ParserVisitor$2Func extends Function {
        <TInput, TResult>($TInput: Bridge.TypeRef<TInput>, $TResult: Bridge.TypeRef<TResult>): {
            prototype: ParserVisitor$2<TInput,TResult>;
            new (): ParserVisitor$2<TInput,TResult>;
        }
    }
    var ParserVisitor$2: ParserVisitor$2Func;

    interface ParserVisitor$1<TInput> {
        VisitApply<TLeft, TOutput>(TLeft: {prototype: TLeft}, TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ApplyParser$3<TInput,TLeft,TOutput> | null): void;
        VisitBest$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.BestParser$2<TInput,TOutput> | null): void;
        VisitBest(parser: Kusto.Language.Parsing.BestParser$1<TInput> | null): void;
        VisitConvert<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ConvertParser$2<TInput,TOutput> | null): void;
        VisitFails(parser: Kusto.Language.Parsing.FailsParser$1<TInput> | null): void;
        VisitFirst$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.FirstParser$2<TInput,TOutput> | null): void;
        VisitFirst(parser: Kusto.Language.Parsing.FirstParser$1<TInput> | null): void;
        VisitForward<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ForwardParser$2<TInput,TOutput> | null): void;
        VisitIf$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.IfParser$2<TInput,TOutput> | null): void;
        VisitIf(parser: Kusto.Language.Parsing.IfParser$1<TInput> | null): void;
        VisitMap<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MapParser$2<TInput,TOutput> | null): void;
        VisitMatch(parser: Kusto.Language.Parsing.MatchParser$1<TInput> | null): void;
        VisitMatch$1<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.MatchParser$2<TInput,TOutput> | null): void;
        VisitNot(parser: Kusto.Language.Parsing.NotParser$1<TInput> | null): void;
        VisitOneOrMore(parser: Kusto.Language.Parsing.OneOrMoreParser$1<TInput> | null): void;
        VisitOptional<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.OptionalParser$2<TInput,TOutput> | null): void;
        VisitProduce<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.ProduceParser$2<TInput,TOutput> | null): void;
        VisitRequired<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RequiredParser$2<TInput,TOutput> | null): void;
        VisitRule<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.RuleParser$2<TInput,TOutput> | null): void;
        VisitSequence(parser: Kusto.Language.Parsing.SequenceParser$1<TInput> | null): void;
        VisitZeroOrMore(parser: Kusto.Language.Parsing.ZeroOrMoreParser$1<TInput> | null): void;
        VisitLimit<TOutput>(TOutput: {prototype: TOutput}, parser: Kusto.Language.Parsing.LimitParser$2<TInput,TOutput> | null): void;
    }
    interface ParserVisitor$1Func extends Function {
        <TInput>($TInput: Bridge.TypeRef<TInput>): {
            prototype: ParserVisitor$1<TInput>;
            new (): ParserVisitor$1<TInput>;
        }
    }
    var ParserVisitor$1: ParserVisitor$1Func;

    interface TriviaFacts {
    }
    interface TriviaFactsFunc extends Function {
        prototype: TriviaFacts;
        new (): TriviaFacts;
        /**
         * Gets the span of the comment at the position.
         *
         * @static
         * @public
         * @this Kusto.Language.Parsing.TriviaFacts
         * @memberof Kusto.Language.Parsing.TriviaFacts
         * @param   {string}          trivia      
         * @param   {number}          position    
         * @param   {System.Int32}    start       
         * @param   {System.Int32}    length
         * @return  {boolean}
         */
        TryGetCommentSpan(trivia: string | null, position: number, start: {v: number}, length: {v: number}): boolean;
    }
    var TriviaFacts: TriviaFactsFunc;

}

    /**
     * @memberof Kusto.Language.Symbols
     * @callback Kusto.Language.Symbols.CustomReturnType
     * @param   {Kusto.Language.Symbols.CustomReturnTypeContext}    info
     * @return  {Kusto.Language.Symbols.TypeSymbol}
     */

    /**
     * @memberof Kusto.Language.Symbols
     * @callback Kusto.Language.Symbols.ParameterLayoutBuilder
     * @param   {Kusto.Language.Symbols.Signature}              signature             
     * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments             
     * @param   {System.Collections.Generic.List$1}             argumentParameters
     * @return  {void}
     */

    /**
     * @memberof Kusto.Language.Symbols
     * @callback Kusto.Language.Symbols.CustomAvailability
     * @param   {Kusto.Language.Symbols.CustomAvailabilityContext}    context
     * @return  {boolean}
     */

declare namespace Kusto.Language.Symbols {
    interface SymbolMatchExtensions {
    }
    interface SymbolMatchExtensionsFunc extends Function {
        prototype: SymbolMatchExtensions;
        new (): SymbolMatchExtensions;
        Matches$1(symbol: Kusto.Language.Symbols.Symbol | null, name: string | null, match: Kusto.Language.Symbols.SymbolMatch, ignoreCase?: boolean): boolean;
        Matches(symbol: Kusto.Language.Symbols.Symbol | null, match: Kusto.Language.Symbols.SymbolMatch): boolean;
        /**
         * True if the symbol matches the type or is a variable with a value that matches the type.
         *
         * @static
         * @private
         * @this Kusto.Language.Symbols.SymbolMatchExtensions
         * @memberof Kusto.Language.Symbols.SymbolMatchExtensions
         * @param   {Function}                         T         
         * @param   {Kusto.Language.Symbols.Symbol}    symbol
         * @return  {boolean}
         */
    }
    var SymbolMatchExtensions: SymbolMatchExtensionsFunc;

    /** @namespace Kusto.Language.Symbols */

    /**
     * A symbol that represents any scalar primitive stored in a dynamic column.
     *
     * @public
     * @class Kusto.Language.Symbols.DynamicAnySymbol
     * @augments Kusto.Language.Symbols.DynamicSymbol
     */
    interface DynamicAnySymbol extends Kusto.Language.Symbols.DynamicSymbol {
        Kind: Kusto.Language.Symbols.SymbolKind;
    }
    interface DynamicAnySymbolFunc extends Function {
        prototype: DynamicAnySymbol;
        Instance: Kusto.Language.Symbols.DynamicAnySymbol | null;
    }
    var DynamicAnySymbol: DynamicAnySymbolFunc;

    /**
     * A symbol that represents any scalar primitive stored in a dynamic column.
     *
     * @public
     * @class Kusto.Language.Symbols.DynamicPrimitiveSymbol
     * @augments Kusto.Language.Symbols.DynamicSymbol
     */
    interface DynamicPrimitiveSymbol extends Kusto.Language.Symbols.DynamicSymbol {
        UnderlyingType: Kusto.Language.Symbols.ScalarSymbol | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
    }
    interface DynamicPrimitiveSymbolFunc extends Function {
        prototype: DynamicPrimitiveSymbol;
    }
    var DynamicPrimitiveSymbol: DynamicPrimitiveSymbolFunc;

    /**
     * A symbol representing a database.
     *
     * @public
     * @class Kusto.Language.Symbols.DatabaseSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface DatabaseSymbol extends Kusto.Language.Symbols.TypeSymbol {
        /**
         * If true, then the definition of the database is not fully known.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @function IsOpen
         * @type boolean
         */
        IsOpen: boolean;
        AlternateName: string | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        /**
         * All the symbols contained by this symbol.
         *
         * @instance
         * @public
         * @override
         * @readonly
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @function Members
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Members: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        /**
         * The tables contained by the database.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @function Tables
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Tables: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TableSymbol> | null;
        /**
         * The external tables accessible from the database.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @function ExternalTables
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        ExternalTables: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ExternalTableSymbol> | null;
        /**
         * The materialized views accessible from the database.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @function MaterializedViews
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        MaterializedViews: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.MaterializedViewSymbol> | null;
        /**
         * The functions contained by the database.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @function Functions
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Functions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.FunctionSymbol> | null;
        /**
         * The entity groups contained by the database.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @function EntityGroups
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        EntityGroups: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.EntityGroupSymbol> | null;
        /**
         * The stored query results contained by the database.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @function StoredQueryResults
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        StoredQueryResults: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.StoredQueryResultSymbol> | null;
        /**
         * The graph models contained by the database.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @function GraphModels
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        GraphModels: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.GraphModelSymbol> | null;
        /**
         * Gets the member with the specified name or returns null.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                           name
         * @return  {Kusto.Language.Symbols.Symbol}
         */
        GetMember(name: string | null): Kusto.Language.Symbols.Symbol | null;
        /**
         * Gets the table with the specified name or returns null.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                name
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        GetTable(name: string | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Gets the table, external table or materialized view with the specified name.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                name
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        GetAnyTable(name: string | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Gets the external table with the specified name or returns null.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                name
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        GetExternalTable(name: string | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Gets the materialized view with the specified name or returns null.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                           name
         * @return  {Kusto.Language.Symbols.MaterializedViewSymbol}
         */
        GetMaterializedView(name: string | null): Kusto.Language.Symbols.MaterializedViewSymbol | null;
        /**
         * Gets the function with the specified name or returns null.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                   name
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        GetFunction(name: string | null): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Gets the entitiy group with the specified name or retuns null.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                      name
         * @return  {Kusto.Language.Symbols.EntityGroupSymbol}
         */
        GetEntityGroup(name: string | null): Kusto.Language.Symbols.EntityGroupSymbol | null;
        /**
         * Gets the stored query result with the specified name or returns null.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                            name
         * @return  {Kusto.Language.Symbols.StoredQueryResultSymbol}
         */
        GetStoredQueryResult(name: string | null): Kusto.Language.Symbols.StoredQueryResultSymbol | null;
        /**
         * Gets the graph model with the specified name or returns null.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                     name
         * @return  {Kusto.Language.Symbols.GraphModelSymbol}
         */
        GetGraphModel(name: string | null): Kusto.Language.Symbols.GraphModelSymbol | null;
        /**
         * Returns a new {@link } with the specified {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                   alternateName
         * @return  {Kusto.Language.Symbols.DatabaseSymbol}
         */
        WithAlternateName(alternateName: string | null): Kusto.Language.Symbols.DatabaseSymbol | null;
        /**
         * Returns a new {@link } with the specified members.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {System.Collections.Generic.IEnumerable$1}    members
         * @return  {Kusto.Language.Symbols.DatabaseSymbol}
         */
        WithMembers(members: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Symbol> | null): Kusto.Language.Symbols.DatabaseSymbol | null;
        /**
         * Returns a new {@link } with the specified members added.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {System.Collections.Generic.IEnumerable$1}    symbols
         * @return  {Kusto.Language.Symbols.DatabaseSymbol}
         */
        AddMembers$1(symbols: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Symbol> | null): Kusto.Language.Symbols.DatabaseSymbol | null;
        /**
         * Returns a new {@link } with the specified members added.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {Array.<Kusto.Language.Symbols.Symbol>}    symbols
         * @return  {Kusto.Language.Symbols.DatabaseSymbol}
         */
        AddMembers(symbols: Kusto.Language.Symbols.Symbol[] | null): Kusto.Language.Symbols.DatabaseSymbol | null;
        /**
         * Returns true if the symbol is contained by the database.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {Kusto.Language.Symbols.Symbol}    symbol
         * @return  {boolean}
         */
        Contains(symbol: Kusto.Language.Symbols.Symbol | null): boolean;
    }
    interface DatabaseSymbolFunc extends Function {
        prototype: DatabaseSymbol;
        /**
         * Creates a new instance of a {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                      name             
         * @param   {string}                                      alternateName    
         * @param   {System.Collections.Generic.IEnumerable$1}    members          
         * @param   {boolean}                                     isOpen
         * @return  {void}
         */
        $ctor3: {
            new (name: string | null, alternateName: string | null, members: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Symbol> | null, isOpen: boolean): DatabaseSymbol
        };
        /**
         * Creates a new instance of a {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                      name       
         * @param   {System.Collections.Generic.IEnumerable$1}    members    
         * @param   {boolean}                                     isOpen
         * @return  {void}
         */
        $ctor1: {
            new (name: string | null, members: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Symbol> | null, isOpen: boolean): DatabaseSymbol
        };
        /**
         * Creates a new instance of a {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                   name             
         * @param   {string}                                   alternateName    
         * @param   {Array.<Kusto.Language.Symbols.Symbol>}    members
         * @return  {void}
         */
        $ctor2: {
            new (name: string | null, alternateName: string | null, members: Kusto.Language.Symbols.Symbol[] | null): DatabaseSymbol
        };
        /**
         * Creates a new instance of a {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DatabaseSymbol
         * @memberof Kusto.Language.Symbols.DatabaseSymbol
         * @param   {string}                                   name       
         * @param   {Array.<Kusto.Language.Symbols.Symbol>}    members
         * @return  {void}
         */
        ctor: {
            new (name: string | null, members: Kusto.Language.Symbols.Symbol[] | null): DatabaseSymbol
        };
        Unknown: Kusto.Language.Symbols.DatabaseSymbol | null;
    }
    var DatabaseSymbol: DatabaseSymbolFunc;

    interface BlockRepeatingParameterLayout extends Kusto.Language.Symbols.ParameterLayout {
        GetArgumentParameters$1(signature: Kusto.Language.Symbols.Signature | null, $arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        GetArgumentParameters(signature: Kusto.Language.Symbols.Signature | null, argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        GetNextPossibleParameters(signature: Kusto.Language.Symbols.Signature | null, $arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, possibleParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        IsValidArgumentCount(signature: Kusto.Language.Symbols.Signature | null, argumentCount: number): boolean;
    }
    interface BlockRepeatingParameterLayoutFunc extends Function {
        prototype: BlockRepeatingParameterLayout;
        new (): BlockRepeatingParameterLayout;
    }
    var BlockRepeatingParameterLayout: BlockRepeatingParameterLayoutFunc;

    /**
     * A base class for symbols that are types.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Symbols.TypeSymbol
     * @augments Kusto.Language.Symbols.Symbol
     */
    interface TypeSymbol extends Kusto.Language.Symbols.Symbol {
    }
    interface TypeSymbolFunc extends Function {
        prototype: TypeSymbol;
    }
    var TypeSymbol: TypeSymbolFunc;

    /**
     * A symbol representing a column.
     *
     * @public
     * @class Kusto.Language.Symbols.ColumnSymbol
     * @augments Kusto.Language.Symbols.Symbol
     */
    interface ColumnSymbol extends Kusto.Language.Symbols.Symbol {
        /**
         * The type of the column.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @function Type
         * @type Kusto.Language.Symbols.TypeSymbol
         */
        Type: Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * The description of the column.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @function Description
         * @type string
         */
        Description: string | null;
        /**
         * One or more columns that this column is based on
         due to either an automatic rename like with join operator
         or unification of multiple columns like with union operator.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @function OriginalColumns
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        OriginalColumns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        /**
         * The expression the column is computed from or
         the location where the column is first introduced.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @function Source
         * @type Kusto.Language.Syntax.SyntaxNode
         */
        Source: Kusto.Language.Syntax.SyntaxNode | null;
        /**
         * Example values used in intellisense completion lists.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @function Examples
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Examples: System.Collections.Generic.IReadOnlyList$1<string> | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        /**
         * Create a new instance of {@link } if any of the specified values
         differs from current values.
         *
         * @instance
         * @private
         * @this Kusto.Language.Symbols.ColumnSymbol
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @param   {Kusto.Language.Utils.Optional$1}        name               
         * @param   {Kusto.Language.Utils.Optional$1}        type               
         * @param   {Kusto.Language.Utils.Optional$1}        description        
         * @param   {Kusto.Language.Utils.Optional$1}        originalColumns    
         * @param   {Kusto.Language.Utils.Optional$1}        source             
         * @param   {Kusto.Language.Utils.Optional$1}        examples
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        /**
         * Returns a {@link } with the name specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ColumnSymbol
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @param   {string}                                 name
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        WithName(name: string | null): Kusto.Language.Symbols.ColumnSymbol | null;
        /**
         * Returns a {@link } with the type specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ColumnSymbol
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @param   {Kusto.Language.Symbols.TypeSymbol}      type
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        WithType(type: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Symbols.ColumnSymbol | null;
        /**
         * Returns a {@link } with the specified description.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ColumnSymbol
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @param   {string}                                 description
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        WithDescription(description: string | null): Kusto.Language.Symbols.ColumnSymbol | null;
        /**
         * Returns a {@link } with the specified list of original columns.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ColumnSymbol
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @param   {System.Collections.Generic.IReadOnlyList$1}    originalColumns
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        WithOriginalColumns$1(originalColumns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null): Kusto.Language.Symbols.ColumnSymbol | null;
        /**
         * Returns a {@link } with the specified list of original columns.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ColumnSymbol
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @param   {Array.<Kusto.Language.Symbols.ColumnSymbol>}    originalColumns
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        WithOriginalColumns(originalColumns: Kusto.Language.Symbols.ColumnSymbol[] | null): Kusto.Language.Symbols.ColumnSymbol | null;
        /**
         * Returns a {@link } with the specified source expression.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ColumnSymbol
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @param   {Kusto.Language.Syntax.SyntaxNode}       source
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        WithSource(source: Kusto.Language.Syntax.SyntaxNode | null): Kusto.Language.Symbols.ColumnSymbol | null;
        /**
         * Returns a {@link } with the specified examples.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ColumnSymbol
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @param   {System.Collections.Generic.IReadOnlyList$1}    examples
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        WithExamples(examples: System.Collections.Generic.IReadOnlyList$1<string> | null): Kusto.Language.Symbols.ColumnSymbol | null;
    }
    interface ColumnSymbolFunc extends Function {
        prototype: ColumnSymbol;
        new (name: string | null, type: Kusto.Language.Symbols.TypeSymbol | null, description: string | null, originalColumns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null, source: Kusto.Language.Syntax.SyntaxNode | null, examples: System.Collections.Generic.IReadOnlyList$1<string> | null): ColumnSymbol;
        /**
         * Gets the set of columns that do not declare other original columns.
         *
         * @static
         * @private
         * @this Kusto.Language.Symbols.ColumnSymbol
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columns
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Combines multiple sets of columns into a single set of columns.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ColumnSymbol
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @param   {Kusto.Language.Symbols.CombineKind}            kind          
         * @param   {System.Collections.Generic.IEnumerable$1}      columnSets
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        Combine(kind: Kusto.Language.Symbols.CombineKind, columnSets: System.Collections.Generic.IEnumerable$1<System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol>> | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        /**
         * Combines multiple sets of columns into a single set of columns.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ColumnSymbol
         * @memberof Kusto.Language.Symbols.ColumnSymbol
         * @param   {Kusto.Language.Symbols.CombineKind}                    kind          
         * @param   {Array.<System.Collections.Generic.IReadOnlyList$1>}    columnSets
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        Combine$1(kind: Kusto.Language.Symbols.CombineKind, columnSets: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol>[] | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
    }
    var ColumnSymbol: ColumnSymbolFunc;

    /**
     * A {@link } corresponding to a control command.
     *
     * @public
     * @class Kusto.Language.Symbols.CommandSymbol
     * @augments Kusto.Language.Symbols.Symbol
     */
    interface CommandSymbol extends Kusto.Language.Symbols.Symbol {
        /**
         * The language declaration of the result schema: (col:type, ...)
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CommandSymbol
         * @function ResultSchema
         * @type string
         */
        ResultSchema: string | null;
        /**
         * The {@link } describing the result schema.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CommandSymbol
         * @function ResultType
         * @type Kusto.Language.Symbols.TableSymbol
         */
        ResultType: Kusto.Language.Symbols.TableSymbol | null;
        Construction: string | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
    }
    interface CommandSymbolFunc extends Function {
        prototype: CommandSymbol;
        $ctor1: {
            new (name: string | null, resultSchema: string | null, construction: string | null): CommandSymbol
        };
        ctor: {
            new (name: string | null, resultType: Kusto.Language.Symbols.TableSymbol | null, construction: string | null): CommandSymbol
        };
    }
    var CommandSymbol: CommandSymbolFunc;

    interface CustomParameterLayout extends Kusto.Language.Symbols.ParameterLayout {
        GetArgumentParameters$1(signature: Kusto.Language.Symbols.Signature | null, $arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
    }
    interface CustomParameterLayoutFunc extends Function {
        prototype: CustomParameterLayout;
        new (builder: {(signature: Kusto.Language.Symbols.Signature, arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression>, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter>): void} | null): CustomParameterLayout;
    }
    var CustomParameterLayout: CustomParameterLayoutFunc;

    interface EmptyScope extends Kusto.Language.Symbols.Scope {
        GetSymbols$1(name: string | null, match: Kusto.Language.Symbols.SymbolMatch, symbols: System.Collections.Generic.List$1<Kusto.Language.Symbols.Symbol> | null): void;
    }
    interface EmptyScopeFunc extends Function {
        prototype: EmptyScope;
        new (): EmptyScope;
        Instance: Kusto.Language.Symbols.EmptyScope | null;
    }
    var EmptyScope: EmptyScopeFunc;

    interface GraphSnapshotSymbol extends Kusto.Language.Symbols.Symbol {
        Model: Kusto.Language.Symbols.GraphModelSymbol | null;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        Kind: Kusto.Language.Symbols.SymbolKind;
    }
    interface GraphSnapshotSymbolFunc extends Function {
        prototype: GraphSnapshotSymbol;
        new (name: string | null): GraphSnapshotSymbol;
    }
    var GraphSnapshotSymbol: GraphSnapshotSymbolFunc;

    interface NonRepeatingParameterLayout extends Kusto.Language.Symbols.ParameterLayout {
        GetArgumentParameters$1(signature: Kusto.Language.Symbols.Signature | null, $arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        GetArgumentParameters(signature: Kusto.Language.Symbols.Signature | null, argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        GetNextPossibleParameters(signature: Kusto.Language.Symbols.Signature | null, existingArguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, possibleParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
    }
    interface NonRepeatingParameterLayoutFunc extends Function {
        prototype: NonRepeatingParameterLayout;
        new (): NonRepeatingParameterLayout;
    }
    var NonRepeatingParameterLayout: NonRepeatingParameterLayoutFunc;

    /**
     * A symbol representing a scalar operator.
     *
     * @public
     * @class Kusto.Language.Symbols.OperatorSymbol
     * @augments Kusto.Language.Symbols.Symbol
     */
    interface OperatorSymbol extends Kusto.Language.Symbols.Symbol {
        Kind: Kusto.Language.Symbols.SymbolKind;
        OperatorKind: Kusto.Language.Symbols.OperatorKind;
        Result: Kusto.Language.Symbols.TypeSymbol | null;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        Signatures: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Signature> | null;
    }
    interface OperatorSymbolFunc extends Function {
        prototype: OperatorSymbol;
        $ctor2: {
            new (kind: Kusto.Language.Symbols.OperatorKind, signatures: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Signature> | null): OperatorSymbol
        };
        ctor: {
            new (kind: Kusto.Language.Symbols.OperatorKind, signatures: Kusto.Language.Symbols.Signature[] | null): OperatorSymbol
        };
        $ctor1: {
            new (kind: Kusto.Language.Symbols.OperatorKind, resultType: Kusto.Language.Symbols.TypeSymbol | null): OperatorSymbol
        };
    }
    var OperatorSymbol: OperatorSymbolFunc;

    /**
     * A symbol for a query options (assigned via set statement)
     *
     * @public
     * @class Kusto.Language.Symbols.OptionSymbol
     * @augments Kusto.Language.Symbols.Symbol
     */
    interface OptionSymbol extends Kusto.Language.Symbols.Symbol {
        Description: string | null;
        Types: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ScalarSymbol> | null;
        Examples: System.Collections.Generic.IReadOnlyList$1<string> | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
        Tabularity: Kusto.Language.Symbols.Tabularity;
    }
    interface OptionSymbolFunc extends Function {
        prototype: OptionSymbol;
        $ctor1: {
            new (name: string | null, description: string | null, types: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ScalarSymbol> | null, examples: System.Collections.Generic.IReadOnlyList$1<string> | null): OptionSymbol
        };
        ctor: {
            new (name: string | null, description: string | null, type: Kusto.Language.Symbols.ScalarSymbol | null, examples: System.Collections.Generic.IReadOnlyList$1<string> | null): OptionSymbol
        };
    }
    var OptionSymbol: OptionSymbolFunc;

    /**
     * A symbol for a declared function's parameter
     *
     * @public
     * @class Kusto.Language.Symbols.ParameterSymbol
     * @augments Kusto.Language.Symbols.Symbol
     */
    interface ParameterSymbol extends Kusto.Language.Symbols.Symbol {
        Type: Kusto.Language.Symbols.TypeSymbol | null;
        Description: string | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
        Tabularity: Kusto.Language.Symbols.Tabularity;
    }
    interface ParameterSymbolFunc extends Function {
        prototype: ParameterSymbol;
        new (name: string | null, type: Kusto.Language.Symbols.TypeSymbol | null, description: string | null): ParameterSymbol;
    }
    var ParameterSymbol: ParameterSymbolFunc;

    /**
     * A symbol representing an array of values stored in a dynamic column.
     *
     * @public
     * @class Kusto.Language.Symbols.DynamicArraySymbol
     * @augments Kusto.Language.Symbols.DynamicSymbol
     */
    interface DynamicArraySymbol extends Kusto.Language.Symbols.DynamicSymbol {
        ElementType: Kusto.Language.Symbols.TypeSymbol | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
    }
    interface DynamicArraySymbolFunc extends Function {
        prototype: DynamicArraySymbol;
    }
    var DynamicArraySymbol: DynamicArraySymbolFunc;

    interface RepeatingParameterLayout extends Kusto.Language.Symbols.ParameterLayout {
        GetArgumentParameters$1(signature: Kusto.Language.Symbols.Signature | null, $arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        GetArgumentParameters(signature: Kusto.Language.Symbols.Signature | null, argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        GetNextPossibleParameters(signature: Kusto.Language.Symbols.Signature | null, $arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, possibleParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
    }
    interface RepeatingParameterLayoutFunc extends Function {
        prototype: RepeatingParameterLayout;
        new (allowSkippingOptionalParameters: boolean): RepeatingParameterLayout;
    }
    var RepeatingParameterLayout: RepeatingParameterLayoutFunc;

    /**
     * A binding context for a function/operator call.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Symbols.CustomAvailabilityContext
     */
    interface CustomAvailabilityContext {
        /**
         * The location related to the function/operator call.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CustomAvailabilityContext
         * @function Location
         * @type Kusto.Language.Syntax.SyntaxNode
         */
        Location: Kusto.Language.Syntax.SyntaxNode | null;
    }
    interface CustomAvailabilityContextFunc extends Function {
        prototype: CustomAvailabilityContext;
        new (): CustomAvailabilityContext;
    }
    var CustomAvailabilityContext: CustomAvailabilityContextFunc;

    /**
     * A binding context for a function/operator call.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Symbols.CustomReturnTypeContext
     */
    interface CustomReturnTypeContext {
        /**
         * The location related to the function/operator call.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @function Location
         * @type Kusto.Language.Syntax.SyntaxNode
         */
        Location: Kusto.Language.Syntax.SyntaxNode | null;
        /**
         * The arguments provided to the function call.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @function Arguments
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null;
        /**
         * The types of the arguments provided to the function call.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @function ArgumentTypes
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        ArgumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null;
        /**
         * The {@link } associated with each argument provided to the function call.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @function ArgumentParameters
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        ArgumentParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null;
        /**
         * The input table/schema from the left of a pipe operator.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @function RowScope
         * @type Kusto.Language.Symbols.TableSymbol
         */
        RowScope: Kusto.Language.Symbols.TableSymbol | null;
        /**
         * The signature of the function being called.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @function Signature
         * @type Kusto.Language.Symbols.Signature
         */
        Signature: Kusto.Language.Symbols.Signature | null;
        /**
         * The {@link } in use.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @function Globals
         * @type Kusto.Language.GlobalState
         */
        Globals: Kusto.Language.GlobalState | null;
        /**
         * The current cluster at the call site.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @function CurrentCluster
         * @type Kusto.Language.Symbols.ClusterSymbol
         */
        CurrentCluster: Kusto.Language.Symbols.ClusterSymbol | null;
        /**
         * The current database as the call site.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @function CurrentDatabase
         * @type Kusto.Language.Symbols.DatabaseSymbol
         */
        CurrentDatabase: Kusto.Language.Symbols.DatabaseSymbol | null;
        /**
         * The function the call site is within.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @function CurrentFunction
         * @type Kusto.Language.Symbols.FunctionSymbol
         */
        CurrentFunction: Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Gets the first argument associated with the named parameter, or null if no argument is associated with the specified parameter.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.CustomReturnTypeContext
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @param   {string}                              parameterName
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetArgument$1(parameterName: string | null): Kusto.Language.Syntax.Expression | null;
        /**
         * Gets the first argument associated with the named parameter, or null if no argument is associated with the specified parameter.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.CustomReturnTypeContext
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @param   {Kusto.Language.Symbols.Parameter}    parameter
         * @return  {Kusto.Language.Syntax.Expression}
         */
        GetArgument(parameter: Kusto.Language.Symbols.Parameter | null): Kusto.Language.Syntax.Expression | null;
        /**
         * Gets the arguments for the specified parameter.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.CustomReturnTypeContext
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @param   {string}                                        parameterName
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetArguments$1(parameterName: string | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null;
        /**
         * Gets the arguments for the specified parameter.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.CustomReturnTypeContext
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @param   {Kusto.Language.Symbols.Parameter}              parameter
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetArguments(parameter: Kusto.Language.Symbols.Parameter | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null;
        /**
         * Returns the symbol referenced by the name or null if no such symbol exists in scope.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Symbols.CustomReturnTypeContext
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @param   {string}                           name
         * @return  {Kusto.Language.Symbols.Symbol}
         */
        GetReferencedSymbol(name: string | null): Kusto.Language.Symbols.Symbol | null;
        /**
         * Returns the result type of the symbol referenced by the name or null if no such symbol exists in scope.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Symbols.CustomReturnTypeContext
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @param   {string}                               name
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetResultType(name: string | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Gets the column name the expression would have in a projection list.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Symbols.CustomReturnTypeContext
         * @memberof Kusto.Language.Symbols.CustomReturnTypeContext
         * @param   {Kusto.Language.Syntax.Expression}    expr           
         * @param   {string}                              defaultName
         * @return  {string}
         */
        GetResultName(expr: Kusto.Language.Syntax.Expression | null, defaultName?: string | null): string | null;
    }
    interface CustomReturnTypeContextFunc extends Function {
        prototype: CustomReturnTypeContext;
        new (): CustomReturnTypeContext;
    }
    var CustomReturnTypeContext: CustomReturnTypeContextFunc;

    /**
     * The state of a {@link }
     *
     * @public
     * @class Kusto.Language.Symbols.TableState
     */
    enum TableState {
        None = 0,
        Serialized = 1,
        Sorted = 2,
        Open = 4
    }

    /**
     * A symbol representing a non-type.
     *
     * @public
     * @class Kusto.Language.Symbols.VoidSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface VoidSymbol extends Kusto.Language.Symbols.TypeSymbol {
        Kind: Kusto.Language.Symbols.SymbolKind;
        Tabularity: Kusto.Language.Symbols.Tabularity;
    }
    interface VoidSymbolFunc extends Function {
        prototype: VoidSymbol;
        Instance: Kusto.Language.Symbols.VoidSymbol | null;
    }
    var VoidSymbol: VoidSymbolFunc;

    /**
     * The symbol for a pattern.
     *
     * @public
     * @class Kusto.Language.Symbols.PatternSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface PatternSymbol extends Kusto.Language.Symbols.TypeSymbol {
        Kind: Kusto.Language.Symbols.SymbolKind;
        Parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null;
        PathParameter: Kusto.Language.Symbols.Parameter | null;
        Signatures: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.PatternSignature> | null;
        Tabularity: Kusto.Language.Symbols.Tabularity;
    }
    interface PatternSymbolFunc extends Function {
        prototype: PatternSymbol;
        $ctor1: {
            new (name: string | null, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null, pathParameter: Kusto.Language.Symbols.Parameter | null, signatures: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.PatternSignature> | null): PatternSymbol
        };
        ctor: {
            new (name: string | null): PatternSymbol
        };
    }
    var PatternSymbol: PatternSymbolFunc;

    /**
     * A symbol corresponding to a group of symbols.
     This symbol occurs when a name reference is ambigous.
     *
     * @public
     * @class Kusto.Language.Symbols.GroupSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface GroupSymbol extends Kusto.Language.Symbols.TypeSymbol {
        Kind: Kusto.Language.Symbols.SymbolKind;
        Members: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        Tabularity: Kusto.Language.Symbols.Tabularity;
    }
    interface GroupSymbolFunc extends Function {
        prototype: GroupSymbol;
        $ctor1: {
            new (symbols: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Symbol> | null): GroupSymbol
        };
        ctor: {
            new (symbols: Kusto.Language.Symbols.Symbol[] | null): GroupSymbol
        };
    }
    var GroupSymbol: GroupSymbolFunc;

    /**
     * A symbol representing a graph
     *
     * @public
     * @class Kusto.Language.Symbols.GraphSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface GraphSymbol extends Kusto.Language.Symbols.TypeSymbol {
        /**
         * The shape an edge in the graph.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.GraphSymbol
         * @function EdgeShape
         * @type Kusto.Language.Symbols.TableSymbol
         */
        EdgeShape: Kusto.Language.Symbols.TableSymbol | null;
        /**
         * The shape of an node in the graph.
         This may be null.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.GraphSymbol
         * @function NodeShape
         * @type Kusto.Language.Symbols.TableSymbol
         */
        NodeShape: Kusto.Language.Symbols.TableSymbol | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        WithName(name: string | null): Kusto.Language.Symbols.GraphSymbol | null;
        WithEdgeShape(edgeShape: Kusto.Language.Symbols.TableSymbol | null): Kusto.Language.Symbols.GraphSymbol | null;
        WithNodeShape(nodeShape: Kusto.Language.Symbols.TableSymbol | null): Kusto.Language.Symbols.GraphSymbol | null;
    }
    interface GraphSymbolFunc extends Function {
        prototype: GraphSymbol;
        $ctor3: {
            new (name: string | null, edgeShape: Kusto.Language.Symbols.TableSymbol | null, nodeShape: Kusto.Language.Symbols.TableSymbol | null): GraphSymbol
        };
        $ctor4: {
            new (name: string | null, edgeShape: Kusto.Language.Symbols.TableSymbol | null, nodeShapes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TableSymbol> | null): GraphSymbol
        };
        $ctor5: {
            new (name: string | null, edgeShapes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TableSymbol> | null, nodeShapes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TableSymbol> | null): GraphSymbol
        };
        ctor: {
            new (edgeShape: Kusto.Language.Symbols.TableSymbol | null, nodeShape: Kusto.Language.Symbols.TableSymbol | null): GraphSymbol
        };
        $ctor1: {
            new (edgeShape: Kusto.Language.Symbols.TableSymbol | null, nodeShapes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TableSymbol> | null): GraphSymbol
        };
        $ctor2: {
            new (edgeShapes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TableSymbol> | null, nodeShapes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TableSymbol> | null): GraphSymbol
        };
        $ctor6: {
            new (name: string | null, edgeSchema: string | null, nodeSchema: string | null): GraphSymbol
        };
        Empty: Kusto.Language.Symbols.GraphSymbol | null;
        /**
         * Merges two graph definitions together by merging the edge and node shapes.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.GraphSymbol
         * @memberof Kusto.Language.Symbols.GraphSymbol
         * @param   {Kusto.Language.Symbols.GraphSymbol}    leftGraph     
         * @param   {Kusto.Language.Symbols.GraphSymbol}    rightGraph
         * @return  {Kusto.Language.Symbols.GraphSymbol}
         */
        Merge(leftGraph: Kusto.Language.Symbols.GraphSymbol | null, rightGraph: Kusto.Language.Symbols.GraphSymbol | null): Kusto.Language.Symbols.GraphSymbol | null;
        /**
         * Create a graph symbol from edge and node schemas only.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.GraphSymbol
         * @memberof Kusto.Language.Symbols.GraphSymbol
         * @param   {string}                                edgeSchema    
         * @param   {string}                                nodeSchema
         * @return  {Kusto.Language.Symbols.GraphSymbol}
         */
        From(edgeSchema: string | null, nodeSchema?: string | null): Kusto.Language.Symbols.GraphSymbol | null;
    }
    var GraphSymbol: GraphSymbolFunc;

    /**
     * A symbol representing a graph model.
     *
     * @public
     * @class Kusto.Language.Symbols.GraphModelSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface GraphModelSymbol extends Kusto.Language.Symbols.TypeSymbol {
        /**
         * All queries defining edge tables.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.GraphModelSymbol
         * @function Edges
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Edges: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Signature> | null;
        /**
         * All queries defining node tables.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.GraphModelSymbol
         * @function Nodes
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Nodes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Signature> | null;
        /**
         * All named snapshots.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.GraphModelSymbol
         * @function Snapshots
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Snapshots: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.GraphSnapshotSymbol> | null;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        Kind: Kusto.Language.Symbols.SymbolKind;
        Members: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        /**
         * Returns the snapshot of the specified name or null if it does not exist.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.GraphModelSymbol
         * @memberof Kusto.Language.Symbols.GraphModelSymbol
         * @param   {string}                                        name        
         * @param   {Kusto.Language.Symbols.GraphSnapshotSymbol}    snapshot
         * @return  {boolean}
         */
        TryGetSnapshot(name: string | null, snapshot: {v: Kusto.Language.Symbols.GraphSnapshotSymbol | null}): boolean;
    }
    interface GraphModelSymbolFunc extends Function {
        prototype: GraphModelSymbol;
        ctor: {
            new (name: string | null, edges: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Signature> | null, nodes: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Signature> | null, snapshots: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.GraphSnapshotSymbol> | null): GraphModelSymbol
        };
        $ctor1: {
            new (name: string | null, edges: System.Collections.Generic.IEnumerable$1<string> | null, nodes: System.Collections.Generic.IEnumerable$1<string> | null, snapshots: System.Collections.Generic.IEnumerable$1<string> | null): GraphModelSymbol
        };
        $ctor2: {
            new (name: string | null, edge: string | null, node: string | null, snapshots: System.Collections.Generic.IEnumerable$1<string> | null): GraphModelSymbol
        };
    }
    var GraphModelSymbol: GraphModelSymbolFunc;

    /**
     * The symbol for a function.
     *
     * @public
     * @class Kusto.Language.Symbols.FunctionSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface FunctionSymbol extends Kusto.Language.Symbols.TypeSymbol {
        Kind: Kusto.Language.Symbols.SymbolKind;
        /**
         * A function can have one or more signatures.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function Signatures
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Signatures: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Signature> | null;
        /**
         * The description of the function.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function Description
         * @type string
         */
        Description: string | null;
        /**
         * How the name of the result of this function is determined.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function ResultNameKind
         * @type Kusto.Language.Symbols.ResultNameKind
         */
        ResultNameKind: Kusto.Language.Symbols.ResultNameKind;
        /**
         * The prefix to column names generated by this function.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function ResultNamePrefix
         * @type string
         */
        ResultNamePrefix: string | null;
        /**
         * The name of an alternative function to use instead of this function
         if this function is obsolete/deprecated.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function Alternative
         * @type string
         */
        Alternative: string | null;
        /**
         * True if this function is considered obsolete/deprecated.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function IsObsolete
         * @type boolean
         */
        IsObsolete: boolean;
        /**
         * The name of an alternative more optimized function to use
         instead of this function when possible.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function OptimizedAlternative
         * @type string
         */
        OptimizedAlternative: string | null;
        /**
         * A function that determines when this function is available in a given context.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function CustomAvailability
         * @type Kusto.Language.Symbols.CustomAvailability
         */
        CustomAvailability: {(context: Kusto.Language.Symbols.CustomAvailabilityContext): boolean} | null;
        /**
         * If true, the symbol is hidden from Intellisense.
         *
         * @instance
         * @public
         * @override
         * @readonly
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function IsHidden
         * @type boolean
         */
        IsHidden: boolean;
        /**
         * If true this function is considered a constant when all its arguments are constants.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function IsConstantFoldable
         * @type boolean
         */
        IsConstantFoldable: boolean;
        /**
         * If true, this function is considered a view.
         Views are local functions that can be accessed using the table() function.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function IsView
         * @type boolean
         */
        IsView: boolean;
        /**
         * The tabularity of the function.
         *
         * @instance
         * @public
         * @override
         * @readonly
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function Tabularity
         * @type Kusto.Language.Symbols.Tabularity
         */
        Tabularity: Kusto.Language.Symbols.Tabularity;
        /**
         * The minimum number of arguments that this function requires.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function MinArgumentCount
         * @type number
         */
        MinArgumentCount: number;
        /**
         * The maximum number of arguments this function can take.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @function MaxArgumentCount
         * @type number
         */
        MaxArgumentCount: number;
        /**
         * Constructs a new {@link } if one of the arguments differs from the 
         existing corresponding property value, or returns this instance if there are no differences.
         *
         * @instance
         * @private
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {Kusto.Language.Utils.Optional$1}          name                    
         * @param   {Kusto.Language.Utils.Optional$1}          signatures              
         * @param   {Kusto.Language.Utils.Optional$1}          flags                   
         * @param   {Kusto.Language.Utils.Optional$1}          resultNameKind          
         * @param   {Kusto.Language.Utils.Optional$1}          resultNamePrefix        
         * @param   {Kusto.Language.Utils.Optional$1}          description             
         * @param   {Kusto.Language.Utils.Optional$1}          alternative             
         * @param   {Kusto.Language.Utils.Optional$1}          optimizedAlternative    
         * @param   {Kusto.Language.Utils.Optional$1}          fnAvailability
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        /**
         * Creates a new {@link } that is hidden from completion lists.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        Hide(): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Creates a new {@link } with the {@link } property set to the specified value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {boolean}                                  isHidden
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        WithIsHidden(isHidden: boolean): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Creates a new {@link } that is a constant if all its arguments are constant.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        ConstantFoldable(): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Creates a new {@link } with the {@link } property set to the specified value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {boolean}                                  isConstantFoldable
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        WithIsConstantFoldable(isConstantFoldable: boolean): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Creates a new {@link } with the {@link } property set to the specified value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {boolean}                                  isView
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        WithIsView(isView: boolean): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Creates a new {@link } with the {@link } property set to the specified value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {string}                                   resultNamePrefix
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        WithResultNamePrefix(resultNamePrefix: string | null): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Creates a new {@link } with the {@link } property set to the specified value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {Kusto.Language.Symbols.ResultNameKind}    kind
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        WithResultNameKind(kind: Kusto.Language.Symbols.ResultNameKind): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Creates a new {@link } with the {@link } property set to the specified value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {string}                                   description
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        WithDescription(description: string | null): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Creates a new {@link } that is considered obsolete/deprecated.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {string}                                   alternative
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        Obsolete(alternative: string | null): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Creates a new {@link } with the {@link } property set to the specified value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {boolean}                                  isObsolete     
         * @param   {string}                                   alternative
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        WithIsObsolete(isObsolete: boolean, alternative?: string | null): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Creates a new {@link } that is considered to be less optimized
         than the alternative function.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {string}                                   alternative
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        WithOptimizedAlternative(alternative: string | null): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Creates a new {@link } that has a custom function determining whether or 
         not the function is available in a given context.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {Kusto.Language.Symbols.CustomAvailability}    fnAvailability
         * @return  {Kusto.Language.Symbols.FunctionSymbol}
         */
        WithCustomAvailability(fnAvailability: {(context: Kusto.Language.Symbols.CustomAvailabilityContext): boolean} | null): Kusto.Language.Symbols.FunctionSymbol | null;
        /**
         * Gets the return type for the function as best as can be determined without specific call site arguments.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.FunctionSymbol
         * @memberof Kusto.Language.Symbols.FunctionSymbol
         * @param   {Kusto.Language.GlobalState}           globals
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetReturnType(globals: Kusto.Language.GlobalState | null): Kusto.Language.Symbols.TypeSymbol | null;
    }
    interface FunctionSymbolFunc extends Function {
        prototype: FunctionSymbol;
        FunctionFlags: FunctionSymbol.FunctionFlagsFunc;
        $ctor10: {
            new (name: string | null, signatures: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Signature> | null, description: string | null): FunctionSymbol
        };
        $ctor4: {
            new (name: string | null, signatures: Kusto.Language.Symbols.Signature[] | null): FunctionSymbol
        };
        $ctor6: {
            new (name: string | null, returnType: Kusto.Language.Symbols.TypeSymbol | null, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null, description: string | null): FunctionSymbol
        };
        $ctor5: {
            new (name: string | null, returnType: Kusto.Language.Symbols.TypeSymbol | null, parameters: Kusto.Language.Symbols.Parameter[] | null): FunctionSymbol
        };
        $ctor3: {
            new (name: string | null, returnTypeKind: Kusto.Language.Symbols.ReturnTypeKind, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null): FunctionSymbol
        };
        $ctor2: {
            new (name: string | null, returnTypeKind: Kusto.Language.Symbols.ReturnTypeKind, parameters: Kusto.Language.Symbols.Parameter[] | null): FunctionSymbol
        };
        $ctor1: {
            new (name: string | null, customReturnType: {(info: Kusto.Language.Symbols.CustomReturnTypeContext): Kusto.Language.Symbols.TypeSymbol} | null, tabularity: Kusto.Language.Symbols.Tabularity, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null): FunctionSymbol
        };
        ctor: {
            new (name: string | null, customReturnType: {(info: Kusto.Language.Symbols.CustomReturnTypeContext): Kusto.Language.Symbols.TypeSymbol} | null, tabularity: Kusto.Language.Symbols.Tabularity, parameters: Kusto.Language.Symbols.Parameter[] | null): FunctionSymbol
        };
        $ctor13: {
            new (name: string | null, body: string | null, tabularity: Kusto.Language.Symbols.Tabularity, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null, description: string | null): FunctionSymbol
        };
        $ctor12: {
            new (name: string | null, body: string | null, tabularity: Kusto.Language.Symbols.Tabularity, parameters: Kusto.Language.Symbols.Parameter[] | null): FunctionSymbol
        };
        $ctor14: {
            new (name: string | null, body: string | null, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null, description: string | null): FunctionSymbol
        };
        $ctor11: {
            new (name: string | null, body: string | null, parameters: Kusto.Language.Symbols.Parameter[] | null): FunctionSymbol
        };
        $ctor16: {
            new (name: string | null, parameterList: string | null, body: string | null, description: string | null): FunctionSymbol
        };
        $ctor15: {
            new (name: string | null, parameterList: string | null, body: string | null, tabularity: Kusto.Language.Symbols.Tabularity, description: string | null): FunctionSymbol
        };
        $ctor8: {
            new (name: string | null, declaration: Kusto.Language.Syntax.FunctionBody | null, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null): FunctionSymbol
        };
        $ctor7: {
            new (name: string | null, declaration: Kusto.Language.Syntax.FunctionBody | null, parameters: Kusto.Language.Symbols.Parameter[] | null): FunctionSymbol
        };
    }
    var FunctionSymbol: FunctionSymbolFunc;
    module FunctionSymbol {
        interface FunctionFlags {
        }
        interface FunctionFlagsFunc extends Function {
            prototype: FunctionFlags;
            None: number;
            Hidden: number;
            Foldable: number;
            View: number;
        }
    }

    /**
     * A symbol representing a table
     *
     * @public
     * @class Kusto.Language.Symbols.TableSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface TableSymbol extends Kusto.Language.Symbols.TypeSymbol {
        /**
         * The columns of the table.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @function Columns
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Columns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        /**
         * The description of the table.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @function Description
         * @type string
         */
        Description: string | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
        Members: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        /**
         * True if the table is sorted.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @function IsSorted
         * @type boolean
         */
        IsSorted: boolean;
        /**
         * True if the table is serialized.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @function IsSerialized
         * @type boolean
         */
        IsSerialized: boolean;
        /**
         * True if the table is open.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @function IsOpen
         * @type boolean
         */
        IsOpen: boolean;
        /**
         * True if the table is external.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @function IsExternal
         * @type boolean
         */
        IsExternal: boolean;
        /**
         * True if the table is a materialized view.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @function IsMaterializedView
         * @type boolean
         */
        IsMaterializedView: boolean;
        /**
         * True if the table is a stored query result.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @function IsStoredQueryResult
         * @type boolean
         */
        IsStoredQueryResult: boolean;
        /**
         * Construct a new {@link } if one of the optional arguments is different that the current values.
         *
         * @instance
         * @protected
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {string}                                      name           
         * @param   {?number}                                     state          
         * @param   {System.Collections.Generic.IEnumerable$1}    columns        
         * @param   {string}                                      description
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        /**
         * Constructs a new {@link } given the specified values.
         *
         * @instance
         * @protected
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {string}                                      name           
         * @param   {number}                                      state          
         * @param   {System.Collections.Generic.IEnumerable$1}    columns        
         * @param   {string}                                      description
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        /**
         * Returns a version of this {@link } with the specified name.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {string}                                name
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        WithName(name: string | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns a version of this {@link } with the specified description.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {string}                                description
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        WithDescripton(description: string | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns a version of this {@link } with the specified columns.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {System.Collections.Generic.IEnumerable$1}    columns
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        WithColumns$1(columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns a version of this {@link } with the specified columns.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {Array.<Kusto.Language.Symbols.ColumnSymbol>}    columns
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        WithColumns(columns: Kusto.Language.Symbols.ColumnSymbol[] | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns a version of this {@link } with additional columns.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {System.Collections.Generic.IEnumerable$1}    columns
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        AddColumns$1(columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns a version of this {@link } with additional columns.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {Array.<Kusto.Language.Symbols.ColumnSymbol>}    columns
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        AddColumns(columns: Kusto.Language.Symbols.ColumnSymbol[] | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns a version of this {@link } with the specified state.
         *
         * @instance
         * @private
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {number}                                newState
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        /**
         * Returns a version of this {@link } with the specified {@link } property.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {boolean}                               isSerialized
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        WithIsSerialized(isSerialized: boolean): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns a version of this {@link } with the specified {@link } property.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {boolean}                               isSorted
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        WithIsSorted(isSorted: boolean): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns a version of this {@link } with the specified {@link } property.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {boolean}                               isOpen
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        WithIsOpen(isOpen: boolean): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns a version of this {@link } with the specified {@link } property.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {boolean}                               isExternal
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        WithIsExternal(isExternal: boolean): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns a version of this {@link } with the specified {@link } property.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {boolean}                               isMaterializedView
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        WithIsMaterializedView(isMaterializedView: boolean): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns a version of this {@link } with the same inheritable state properties as the specified table;
         IsSerialized, IsSorted, and IsOpen.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {Kusto.Language.Symbols.TableSymbol}    table
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        WithInheritableProperties(table: Kusto.Language.Symbols.TableSymbol | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Gets the column with the specified name.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {string}                                 name
         * @return  {Kusto.Language.Symbols.ColumnSymbol}
         */
        GetColumn(name: string | null): Kusto.Language.Symbols.ColumnSymbol | null;
        /**
         * Gets the {@link } with the specified name.
         Returns true if the column is found, or false if there is no column with the specified name.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {string}                                 name      
         * @param   {Kusto.Language.Symbols.ColumnSymbol}    column
         * @return  {boolean}
         */
        TryGetColumn(name: string | null, column: {v: Kusto.Language.Symbols.ColumnSymbol | null}): boolean;
        /**
         * Gets the {@link }s with names that match the pattern.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {string}                               pattern    
         * @param   {System.Collections.Generic.List$1}    columns
         * @return  {void}
         */
        GetMatchingColumns(pattern: string | null, columns: System.Collections.Generic.List$1<Kusto.Language.Symbols.ColumnSymbol> | null): void;
        GetMembers$1(name: string | null, match: Kusto.Language.Symbols.SymbolMatch, symbols: System.Collections.Generic.List$1<Kusto.Language.Symbols.Symbol> | null, ignoreCase?: boolean): void;
        /**
         * Returns a new {@link } instance with all columns
         modified to reference the specified source.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {Kusto.Language.Syntax.SyntaxNode}      source
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        WithSource(source: Kusto.Language.Syntax.SyntaxNode | null): Kusto.Language.Symbols.TableSymbol | null;
    }
    interface TableSymbolFunc extends Function {
        prototype: TableSymbol;
        TableState: TableSymbol.TableStateFunc;
        $ctor6: {
            new (name: string | null, columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null, description: string | null): TableSymbol
        };
        $ctor7: {
            new (name: string | null, schema: string | null, description: string | null): TableSymbol
        };
        $ctor4: {
            new (name: string | null, columns: Kusto.Language.Symbols.ColumnSymbol[] | null): TableSymbol
        };
        $ctor3: {
            new (columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null): TableSymbol
        };
        ctor: {
            new (columns: Kusto.Language.Symbols.ColumnSymbol[] | null): TableSymbol
        };
        /**
         * An empty table.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @type Kusto.Language.Symbols.TableSymbol
         */
        Empty: Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Gets a {@link } for the schema: (name:type, ...)
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {string}                                schema
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        From(schema: string | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Combine the columns of multiple tables into a new table.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {Kusto.Language.Symbols.CombineKind}          kind      
         * @param   {System.Collections.Generic.IEnumerable$1}    tables
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        Combine$1(kind: Kusto.Language.Symbols.CombineKind, tables: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.TableSymbol> | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Combine the columns of multiple tables into a new table.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {Kusto.Language.Symbols.CombineKind}            kind      
         * @param   {Array.<Kusto.Language.Symbols.TableSymbol>}    tables
         * @return  {Kusto.Language.Symbols.TableSymbol}
         */
        Combine(kind: Kusto.Language.Symbols.CombineKind, tables: Kusto.Language.Symbols.TableSymbol[] | null): Kusto.Language.Symbols.TableSymbol | null;
        /**
         * Returns true if the two tables have the same name, columns and properties.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {Kusto.Language.Symbols.TableSymbol}    x    
         * @param   {Kusto.Language.Symbols.TableSymbol}    y
         * @return  {boolean}
         */
        AreEquivalent(x: Kusto.Language.Symbols.TableSymbol | null, y: Kusto.Language.Symbols.TableSymbol | null): boolean;
        /**
         * Returns true if the two tables have the same columns and properties,
         such that they would be considered the logically equivalent result type.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {Kusto.Language.Symbols.TableSymbol}    x    
         * @param   {Kusto.Language.Symbols.TableSymbol}    y
         * @return  {boolean}
         */
        AreResultEquivalent(x: Kusto.Language.Symbols.TableSymbol | null, y: Kusto.Language.Symbols.TableSymbol | null): boolean;
        /**
         * Returns true if the two tables have the same column names and types.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TableSymbol
         * @memberof Kusto.Language.Symbols.TableSymbol
         * @param   {Kusto.Language.Symbols.TableSymbol}    x    
         * @param   {Kusto.Language.Symbols.TableSymbol}    y
         * @return  {boolean}
         */
        AreColumnsEquivalent(x: Kusto.Language.Symbols.TableSymbol | null, y: Kusto.Language.Symbols.TableSymbol | null): boolean;
    }
    var TableSymbol: TableSymbolFunc;
    module TableSymbol {
        interface TableState {
        }
        interface TableStateFunc extends Function {
            prototype: TableState;
            None: number;
            Serialized: number;
            Sorted: number;
            Open: number;
        }
    }

    /**
     * A symbol representing an unknown type due to a semantic error.
     *
     * @public
     * @class Kusto.Language.Symbols.ErrorSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface ErrorSymbol extends Kusto.Language.Symbols.TypeSymbol {
        Kind: Kusto.Language.Symbols.SymbolKind;
        IsError: boolean;
        Tabularity: Kusto.Language.Symbols.Tabularity;
    }
    interface ErrorSymbolFunc extends Function {
        prototype: ErrorSymbol;
        Instance: Kusto.Language.Symbols.ErrorSymbol | null;
    }
    var ErrorSymbol: ErrorSymbolFunc;

    /**
     * A symbol representing an entity group.
     *
     * @public
     * @class Kusto.Language.Symbols.EntityGroupSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface EntityGroupSymbol extends Kusto.Language.Symbols.TypeSymbol {
        Definition: string | null;
        Description: string | null;
        Members: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        Kind: Kusto.Language.Symbols.SymbolKind;
    }
    interface EntityGroupSymbolFunc extends Function {
        prototype: EntityGroupSymbol;
        $ctor3: {
            new (name: string | null, definition: string | null, description: string | null): EntityGroupSymbol
        };
        $ctor2: {
            new (name: string | null, members: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Symbol> | null, description: string | null): EntityGroupSymbol
        };
        $ctor1: {
            new (name: string | null, members: Kusto.Language.Symbols.Symbol[] | null): EntityGroupSymbol
        };
        ctor: {
            new (members: Kusto.Language.Symbols.Symbol[] | null): EntityGroupSymbol
        };
        Empty: Kusto.Language.Symbols.EntityGroupSymbol | null;
    }
    var EntityGroupSymbol: EntityGroupSymbolFunc;

    /**
     * A symbol representing an entity group element.
     *
     * @public
     * @class Kusto.Language.Symbols.EntityGroupElementSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface EntityGroupElementSymbol extends Kusto.Language.Symbols.TypeSymbol {
        /**
         * The associated {@link }.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.EntityGroupElementSymbol
         * @function EntityGroup
         * @type Kusto.Language.Symbols.EntityGroupSymbol
         */
        EntityGroup: Kusto.Language.Symbols.EntityGroupSymbol | null;
        /**
         * The actual entity symbol within the entity group that is currently being referenced.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.EntityGroupElementSymbol
         * @function UnderlyingSymbol
         * @type Kusto.Language.Symbols.TypeSymbol
         */
        UnderlyingSymbol: Kusto.Language.Symbols.TypeSymbol | null;
        Members: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        Kind: Kusto.Language.Symbols.SymbolKind;
    }
    interface EntityGroupElementSymbolFunc extends Function {
        prototype: EntityGroupElementSymbol;
        $ctor2: {
            new (name: string | null, entityGroup: Kusto.Language.Symbols.EntityGroupSymbol | null, underlyingSymbol: Kusto.Language.Symbols.TypeSymbol | null): EntityGroupElementSymbol
        };
        $ctor1: {
            new (name: string | null, entityGroup: Kusto.Language.Symbols.EntityGroupSymbol | null): EntityGroupElementSymbol
        };
        ctor: {
            new (name: string | null): EntityGroupElementSymbol
        };
        SpecialMembers: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
    }
    var EntityGroupElementSymbol: EntityGroupElementSymbolFunc;

    /**
     * A base type for all scalar types.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Symbols.ScalarSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface ScalarSymbol extends Kusto.Language.Symbols.TypeSymbol {
        Tabularity: Kusto.Language.Symbols.Tabularity;
        /**
         * Other names for this type.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarSymbol
         * @function Aliases
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Aliases: System.Collections.Generic.IReadOnlyList$1<string> | null;
        IsInteger: boolean;
        IsNumeric: boolean;
        IsInterval: boolean;
        IsSummable: boolean;
        IsOrderable: boolean;
        IsMultiValue: boolean;
        /**
         * True if this symbol is wider than the specified symbol.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ScalarSymbol
         * @memberof Kusto.Language.Symbols.ScalarSymbol
         * @param   {Kusto.Language.Symbols.ScalarSymbol}    scalar
         * @return  {boolean}
         */
        IsWiderThan(scalar: Kusto.Language.Symbols.ScalarSymbol | null): boolean;
    }
    interface ScalarSymbolFunc extends Function {
        prototype: ScalarSymbol;
        /**
         * Gets the {@link } for the type name.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ScalarSymbol
         * @memberof Kusto.Language.Symbols.ScalarSymbol
         * @param   {string}                                 typeName
         * @return  {Kusto.Language.Symbols.ScalarSymbol}
         */
        From(typeName: string | null): Kusto.Language.Symbols.ScalarSymbol | null;
    }
    var ScalarSymbol: ScalarSymbolFunc;

    /**
     * A symbol for a variable declaration.
     Typically from a let statement.
     *
     * @public
     * @class Kusto.Language.Symbols.VariableSymbol
     * @augments Kusto.Language.Symbols.Symbol
     */
    interface VariableSymbol extends Kusto.Language.Symbols.Symbol {
        /**
         * The type of the variable.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.VariableSymbol
         * @function Type
         * @type Kusto.Language.Symbols.TypeSymbol
         */
        Type: Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * True if the variable should be considered a constant.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.VariableSymbol
         * @function IsConstant
         * @type boolean
         */
        IsConstant: boolean;
        /**
         * The known constant value info (or null if unknown).
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.VariableSymbol
         * @function ConstantValueInfo
         * @type Kusto.Language.Syntax.ValueInfo
         */
        ConstantValueInfo: Kusto.Language.Syntax.ValueInfo | null;
        /**
         * The known constant value (or null if unknown).
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.VariableSymbol
         * @function ConstantValue
         * @type System.Object
         */
        ConstantValue: any | null;
        /**
         * The expression that the variable is computed from.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.VariableSymbol
         * @function Source
         * @type Kusto.Language.Syntax.Expression
         */
        Source: Kusto.Language.Syntax.Expression | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
        Tabularity: Kusto.Language.Symbols.Tabularity;
    }
    interface VariableSymbolFunc extends Function {
        prototype: VariableSymbol;
        /**
         * Creates a new instance of a {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.VariableSymbol
         * @memberof Kusto.Language.Symbols.VariableSymbol
         * @param   {string}                               name                 
         * @param   {Kusto.Language.Symbols.TypeSymbol}    type                 
         * @param   {boolean}                              isConstant           
         * @param   {Kusto.Language.Syntax.ValueInfo}      constantValueInfo    
         * @param   {Kusto.Language.Syntax.Expression}     source
         * @return  {void}
         */
        new (name: string | null, type: Kusto.Language.Symbols.TypeSymbol | null, isConstant: boolean, constantValueInfo: Kusto.Language.Syntax.ValueInfo | null, source: Kusto.Language.Syntax.Expression | null): VariableSymbol;
    }
    var VariableSymbol: VariableSymbolFunc;

    /**
     * A symbol representing a bag of properties (aka json object),
     stored in a dynamic column.
     *
     * @public
     * @class Kusto.Language.Symbols.DynamicBagSymbol
     * @augments Kusto.Language.Symbols.DynamicSymbol
     */
    interface DynamicBagSymbol extends Kusto.Language.Symbols.DynamicSymbol {
        Properties: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        Members: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        /**
         * Gets the property with the specified name or null.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DynamicBagSymbol
         * @memberof Kusto.Language.Symbols.DynamicBagSymbol
         * @param   {string}                                 name        
         * @param   {Kusto.Language.Symbols.ColumnSymbol}    property
         * @return  {boolean}
         */
        TryGetProperty(name: string | null, property: {v: Kusto.Language.Symbols.ColumnSymbol | null}): boolean;
        /**
         * Returns a new {@link } instance with the specfied properties,
         if the properties are different than the current set of properties.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DynamicBagSymbol
         * @memberof Kusto.Language.Symbols.DynamicBagSymbol
         * @param   {System.Collections.Generic.IEnumerable$1}    properties
         * @return  {Kusto.Language.Symbols.DynamicBagSymbol}
         */
        WithProperties(properties: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null): Kusto.Language.Symbols.DynamicBagSymbol | null;
        /**
         * Returns a {@link } with the property added or updated.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DynamicBagSymbol
         * @memberof Kusto.Language.Symbols.DynamicBagSymbol
         * @param   {Kusto.Language.Symbols.ColumnSymbol}        property
         * @return  {Kusto.Language.Symbols.DynamicBagSymbol}
         */
        AddOrUpdateProperty(property: Kusto.Language.Symbols.ColumnSymbol | null): Kusto.Language.Symbols.DynamicBagSymbol | null;
        /**
         * Returns a new {@link } instance with all properties
         modified to reference the specified source.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.DynamicBagSymbol
         * @memberof Kusto.Language.Symbols.DynamicBagSymbol
         * @param   {Kusto.Language.Syntax.SyntaxNode}           source
         * @return  {Kusto.Language.Symbols.DynamicBagSymbol}
         */
        WithSource(source: Kusto.Language.Syntax.SyntaxNode | null): Kusto.Language.Symbols.DynamicBagSymbol | null;
    }
    interface DynamicBagSymbolFunc extends Function {
        prototype: DynamicBagSymbol;
        ctor: {
            new (properties: Kusto.Language.Symbols.ColumnSymbol[] | null): DynamicBagSymbol
        };
        /**
         * A dynamic object symbol with no known schema.
         *
         * @static
         * @public
         * @memberof Kusto.Language.Symbols.DynamicBagSymbol
         * @type Kusto.Language.Symbols.DynamicBagSymbol
         */
        Empty: Kusto.Language.Symbols.DynamicBagSymbol | null;
    }
    var DynamicBagSymbol: DynamicBagSymbolFunc;

    /**
     * A symbol representing a cluster.
     *
     * @public
     * @class Kusto.Language.Symbols.ClusterSymbol
     * @augments Kusto.Language.Symbols.TypeSymbol
     */
    interface ClusterSymbol extends Kusto.Language.Symbols.TypeSymbol {
        /**
         * If true, then the definition of the cluster is not fully known.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @function IsOpen
         * @type boolean
         */
        IsOpen: boolean;
        Members: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        /**
         * The databases associated with this cluster.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @function Databases
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Databases: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.DatabaseSymbol> | null;
        /**
         * Creates a new {@link } with the specified members.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ClusterSymbol
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @param   {System.Collections.Generic.IEnumerable$1}    members
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        AddMembers$1(members: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.Symbol> | null): Kusto.Language.Symbols.ClusterSymbol | null;
        /**
         * Creates a new {@link } with the specified members.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ClusterSymbol
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @param   {Array.<Kusto.Language.Symbols.Symbol>}    members
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        AddMembers(members: Kusto.Language.Symbols.Symbol[] | null): Kusto.Language.Symbols.ClusterSymbol | null;
        /**
         * Gets the database with the specified name or returns null.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ClusterSymbol
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @param   {string}                                   databaseName
         * @return  {Kusto.Language.Symbols.DatabaseSymbol}
         */
        GetDatabase(databaseName: string | null): Kusto.Language.Symbols.DatabaseSymbol | null;
        /**
         * Creates a new {@link } with the specified list of databases.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ClusterSymbol
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @param   {System.Collections.Generic.IEnumerable$1}    databases
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        WithDatabases(databases: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.DatabaseSymbol> | null): Kusto.Language.Symbols.ClusterSymbol | null;
        /**
         * Creates a new {@link } with the specified database added.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ClusterSymbol
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}    database
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        AddDatabase(database: Kusto.Language.Symbols.DatabaseSymbol | null): Kusto.Language.Symbols.ClusterSymbol | null;
        /**
         * Creates a new {@link } with existing database replaced with the new database.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ClusterSymbol
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}    existingDatabase    
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}    newDatabase
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        UpdateDatabase(existingDatabase: Kusto.Language.Symbols.DatabaseSymbol | null, newDatabase: Kusto.Language.Symbols.DatabaseSymbol | null): Kusto.Language.Symbols.ClusterSymbol | null;
        /**
         * Creates a new {@link } with database added or replacing an existing database with the same name.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ClusterSymbol
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}    newDatabase
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        AddOrUpdateDatabase(newDatabase: Kusto.Language.Symbols.DatabaseSymbol | null): Kusto.Language.Symbols.ClusterSymbol | null;
        /**
         * Creates a new {@link } with the specified database removed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ClusterSymbol
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @param   {Kusto.Language.Symbols.DatabaseSymbol}    symbolToRemove
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        RemoveDatabase(symbolToRemove: Kusto.Language.Symbols.DatabaseSymbol | null): Kusto.Language.Symbols.ClusterSymbol | null;
        /**
         * Creates a new {@link } with the specified databases removed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ClusterSymbol
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @param   {System.Collections.Generic.IEnumerable$1}    symbolsToRemove
         * @return  {Kusto.Language.Symbols.ClusterSymbol}
         */
        RemoveDatabases(symbolsToRemove: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.DatabaseSymbol> | null): Kusto.Language.Symbols.ClusterSymbol | null;
    }
    interface ClusterSymbolFunc extends Function {
        prototype: ClusterSymbol;
        /**
         * Creates a new instance of a {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ClusterSymbol
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @param   {string}                                      name         
         * @param   {System.Collections.Generic.IEnumerable$1}    databases    
         * @param   {boolean}                                     isOpen
         * @return  {void}
         */
        $ctor1: {
            new (name: string | null, databases: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.DatabaseSymbol> | null, isOpen: boolean): ClusterSymbol
        };
        /**
         * Creates a new instance of a {@link }.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ClusterSymbol
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @param   {string}                                           name         
         * @param   {Array.<Kusto.Language.Symbols.DatabaseSymbol>}    databases
         * @return  {void}
         */
        ctor: {
            new (name: string | null, databases: Kusto.Language.Symbols.DatabaseSymbol[] | null): ClusterSymbol
        };
        /**
         * The symbol used to represent unknown clusters.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ClusterSymbol
         * @type Kusto.Language.Symbols.ClusterSymbol
         */
        Unknown: Kusto.Language.Symbols.ClusterSymbol | null;
    }
    var ClusterSymbol: ClusterSymbolFunc;

    interface StoredQueryResultSymbol extends Kusto.Language.Symbols.TableSymbol {
        Kind: Kusto.Language.Symbols.SymbolKind;
    }
    interface StoredQueryResultSymbolFunc extends Function {
        prototype: StoredQueryResultSymbol;
        ctor: {
            new (name: string | null): StoredQueryResultSymbol
        };
        $ctor1: {
            new (name: string | null, columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null): StoredQueryResultSymbol
        };
    }
    var StoredQueryResultSymbol: StoredQueryResultSymbolFunc;

    /**
     * The kinds of conversions allowed between values of two different types.
     *
     * @public
     * @class Kusto.Language.Symbols.Conversion
     */
    enum Conversion {
        None = 0,
        Promotable = 1,
        Dynamic = 2,
        Compatible = 3,
        Any = 4
    }

    /**
     * Generates the debug text for the {@link }
     *
     * @static
     * @abstract
     * @class Kusto.Language.Symbols.DebugDisplay
     */
    interface DebugDisplay {
    }
    interface DebugDisplayFunc extends Function {
        prototype: DebugDisplay;
        new (): DebugDisplay;
        /**
         * Returns the debug text for the {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.DebugDisplay
         * @memberof Kusto.Language.Symbols.DebugDisplay
         * @param   {Kusto.Language.Symbols.Symbol}    symbol
         * @return  {string}
         */
        GetText$2(symbol: Kusto.Language.Symbols.Symbol | null): string | null;
        /**
         * Returns the debug text for the parameter.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.DebugDisplay
         * @memberof Kusto.Language.Symbols.DebugDisplay
         * @param   {Kusto.Language.Symbols.Parameter}    parameter
         * @return  {string}
         */
        GetText(parameter: Kusto.Language.Symbols.Parameter | null): string | null;
        /**
         * Returns the debug text for the {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.DebugDisplay
         * @memberof Kusto.Language.Symbols.DebugDisplay
         * @param   {Kusto.Language.Symbols.Signature}    sig                  
         * @param   {boolean}                             includeSymbolName    
         * @param   {boolean}                             verbose
         * @return  {string}
         */
        GetText$1(sig: Kusto.Language.Symbols.Signature | null, includeSymbolName?: boolean, verbose?: boolean): string | null;
        /**
         * Returns the debug text for the signature+parameter combination
         *
         * @static
         * @private
         * @this Kusto.Language.Symbols.DebugDisplay
         * @memberof Kusto.Language.Symbols.DebugDisplay
         * @param   {Kusto.Language.Symbols.Signature}    signature    
         * @param   {Kusto.Language.Symbols.Parameter}    parameter    
         * @param   {boolean}                             verbose
         * @return  {string}
         */
    }
    var DebugDisplay: DebugDisplayFunc;

    /**
     * A symbol for a tuple of one or more name/value pairs.
     *
     * @public
     * @class Kusto.Language.Symbols.TupleSymbol
     * @augments Kusto.Language.Symbols.ScalarSymbol
     */
    interface TupleSymbol extends Kusto.Language.Symbols.ScalarSymbol {
        Columns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        Members: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
        RelatedTable: Kusto.Language.Symbols.TableSymbol | null;
        /**
         * If true, then a single column tuple can be reduced to the scalar value of that column.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.TupleSymbol
         * @function IsReducibleToScalar
         * @type boolean
         */
        IsReducibleToScalar: boolean;
        /**
         * Returns a new {@link } instance with the specified columns.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TupleSymbol
         * @memberof Kusto.Language.Symbols.TupleSymbol
         * @param   {System.Collections.Generic.IEnumerable$1}    columns
         * @return  {Kusto.Language.Symbols.TupleSymbol}
         */
        WithColumns(columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null): Kusto.Language.Symbols.TupleSymbol | null;
        /**
         * Returns a new {@link } instance with the columns updated to have the specified source.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.TupleSymbol
         * @memberof Kusto.Language.Symbols.TupleSymbol
         * @param   {Kusto.Language.Syntax.SyntaxNode}      source
         * @return  {Kusto.Language.Symbols.TupleSymbol}
         */
        WithSource(source: Kusto.Language.Syntax.SyntaxNode | null): Kusto.Language.Symbols.TupleSymbol | null;
    }
    interface TupleSymbolFunc extends Function {
        prototype: TupleSymbol;
        $ctor1: {
            new (columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null, relatedTable: Kusto.Language.Symbols.TableSymbol | null): TupleSymbol
        };
        ctor: {
            new (columns: Kusto.Language.Symbols.ColumnSymbol[] | null): TupleSymbol
        };
        Empty: Kusto.Language.Symbols.TupleSymbol | null;
        /**
         * Create a {@link } instance from a schema description: (col: type, ...)
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TupleSymbol
         * @memberof Kusto.Language.Symbols.TupleSymbol
         * @param   {string}                                schema
         * @return  {Kusto.Language.Symbols.TupleSymbol}
         */
        From(schema: string | null): Kusto.Language.Symbols.TupleSymbol | null;
    }
    var TupleSymbol: TupleSymbolFunc;

    enum MaterializedViewKind {
        Unknown = 0,
        Downsampling = 1,
        Other = 2
    }

    /**
     * The kind of operator for a {@link }
     *
     * @public
     * @class Kusto.Language.Symbols.OperatorKind
     */
    enum OperatorKind {
        None = 0,
        UnaryMinus = 1,
        UnaryPlus = 2,
        Add = 3,
        Subtract = 4,
        Multiply = 5,
        Divide = 6,
        Modulo = 7,
        EqualTilde = 8,
        BangTilde = 9,
        Has = 10,
        HasCs = 11,
        NotHas = 12,
        NotHasCs = 13,
        HasPrefix = 14,
        HasPrefixCs = 15,
        NotHasPrefix = 16,
        NotHasPrefixCs = 17,
        HasSuffix = 18,
        HasSuffixCs = 19,
        NotHasSuffix = 20,
        NotHasSuffixCs = 21,
        Like = 22,
        LikeCs = 23,
        NotLike = 24,
        NotLikeCs = 25,
        Contains = 26,
        ContainsCs = 27,
        NotContains = 28,
        NotContainsCs = 29,
        StartsWith = 30,
        StartsWithCs = 31,
        NotStartsWith = 32,
        NotStartsWithCs = 33,
        EndsWith = 34,
        EndsWithCs = 35,
        NotEndsWith = 36,
        NotEndsWithCs = 37,
        MatchRegex = 38,
        Search = 39,
        LessThan = 40,
        LessThanOrEqual = 41,
        GreaterThan = 42,
        GreaterThanOrEqual = 43,
        Equal = 44,
        NotEqual = 45,
        And = 46,
        Or = 47,
        In = 48,
        InCs = 49,
        NotIn = 50,
        NotInCs = 51,
        Between = 52,
        NotBetween = 53,
        HasAny = 54,
        HasAll = 55
    }

    /**
     * A parameter declaration for a {@link }.
     *
     * @public
     * @class Kusto.Language.Symbols.Parameter
     */
    interface Parameter {
        /**
         * The name of the parameter.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function Name
         * @type string
         */
        Name: string | null;
        /**
         * The kind of parameter.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function TypeKind
         * @type Kusto.Language.Symbols.ParameterTypeKind
         */
        TypeKind: Kusto.Language.Symbols.ParameterTypeKind;
        /**
         * The possible declared types of the parameter.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function DeclaredTypes
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        DeclaredTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null;
        /**
         * The kind of argument this parameter is constrained to.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function ArgumentKind
         * @type Kusto.Language.Symbols.ArgumentKind
         */
        ArgumentKind: Kusto.Language.Symbols.ArgumentKind;
        /**
         * The minimum number of times the parameter can occur in the signature.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function MinOccurring
         * @type number
         */
        MinOccurring: number;
        /**
         * The maximum number of times the parameter can occur in the signature.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function MaxOccurring
         * @type number
         */
        MaxOccurring: number;
        /**
         * True if the parameter is optional.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Parameter
         * @function IsOptional
         * @type boolean
         */
        IsOptional: boolean;
        /**
         * True if the parameter can be repeated.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Parameter
         * @function IsRepeatable
         * @type boolean
         */
        IsRepeatable: boolean;
        /**
         * The specific values that this parameter is constrained to.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function Values
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Values: System.Collections.Generic.IReadOnlyList$1<any> | null;
        /**
         * Completion list examples.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function Examples
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Examples: System.Collections.Generic.IReadOnlyList$1<string> | null;
        /**
         * If true, then text values (string literal or tokens) must be matched case sensitive.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function IsCaseSensitive
         * @type boolean
         */
        IsCaseSensitive: boolean;
        /**
         * The string literal that can be used to indicate use of the default value.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function DefaultValueIndicator
         * @type string
         */
        DefaultValueIndicator: string | null;
        /**
         * The default value specified for user defined functions.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function DefaultValue
         * @type Kusto.Language.Syntax.Expression
         */
        DefaultValue: Kusto.Language.Syntax.Expression | null;
        /**
         * The descripton of the parameter.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Parameter
         * @function Description
         * @type string
         */
        Description: string | null;
        /**
         * True if the type of the parameter is dependant on arguments.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Parameter
         * @function TypeDependsOnArguments
         * @type boolean
         */
        TypeDependsOnArguments: boolean;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        IsScalar: boolean;
        IsTabular: boolean;
    }
    interface ParameterFunc extends Function {
        prototype: Parameter;
        ctor: {
            new (name: string | null, typeKind: Kusto.Language.Symbols.ParameterTypeKind, argumentKind: Kusto.Language.Symbols.ArgumentKind, values: System.Collections.Generic.IReadOnlyList$1<any> | null, examples: System.Collections.Generic.IReadOnlyList$1<string> | null, isCaseSensitive: boolean, defaultValueIndicator: string | null, minOccurring: number, maxOccurring: number, defaultValue: Kusto.Language.Syntax.Expression | null, description: string | null): Parameter
        };
        $ctor3: {
            new (name: string | null, type: Kusto.Language.Symbols.TypeSymbol | null, argumentKind: Kusto.Language.Symbols.ArgumentKind, values: System.Collections.Generic.IReadOnlyList$1<any> | null, examples: System.Collections.Generic.IReadOnlyList$1<string> | null, isCaseSensitive: boolean, defaultValueIndicator: string | null, minOccurring: number, maxOccurring: number, defaultValue: Kusto.Language.Syntax.Expression | null, description: string | null): Parameter
        };
        $ctor4: {
            new (name: string | null, types: Kusto.Language.Symbols.TypeSymbol[] | null, argumentKind: Kusto.Language.Symbols.ArgumentKind, values: System.Collections.Generic.IReadOnlyList$1<any> | null, examples: System.Collections.Generic.IReadOnlyList$1<string> | null, isCaseSensitive: boolean, defaultValueIndicator: string | null, minOccurring: number, maxOccurring: number, defaultValue: Kusto.Language.Syntax.Expression | null, description: string | null): Parameter
        };
        $ctor2: {
            new (name: string | null, type: Kusto.Language.Symbols.TypeSymbol | null): Parameter
        };
        /**
         * Convert a {@link } into a {@link } instance.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.Parameter
         * @memberof Kusto.Language.Symbols.Parameter
         * @param   {Kusto.Language.Symbols.ParameterSymbol}    parameter       
         * @param   {boolean}                                   isOptional      
         * @param   {Kusto.Language.Syntax.Expression}          defaultValue
         * @return  {Kusto.Language.Symbols.Parameter}
         */
        From(parameter: Kusto.Language.Symbols.ParameterSymbol | null, isOptional?: boolean, defaultValue?: Kusto.Language.Syntax.Expression | null): Kusto.Language.Symbols.Parameter | null;
        /**
         * Convert a parsed {@link } syntax into a {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.Parameter
         * @memberof Kusto.Language.Symbols.Parameter
         * @param   {Kusto.Language.Syntax.FunctionParameter}    declaration
         * @return  {Kusto.Language.Symbols.Parameter}
         */
        From$1(declaration: Kusto.Language.Syntax.FunctionParameter | null): Kusto.Language.Symbols.Parameter | null;
        /**
         * Convert parsed {@link } syntax into a list of {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.Parameter
         * @memberof Kusto.Language.Symbols.Parameter
         * @param   {Kusto.Language.Syntax.FunctionParameters}      declaration
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        From$2(declaration: Kusto.Language.Syntax.FunctionParameters | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null;
        /**
         * Parse the parameter list of a function declaration
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.Parameter
         * @memberof Kusto.Language.Symbols.Parameter
         * @param   {string}                                        parameters
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        ParseList(parameters: string | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null;
        /**
         * Gets the text of the parameter as it would appear in a function declaration.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.Parameter
         * @memberof Kusto.Language.Symbols.Parameter
         * @param   {Kusto.Language.Symbols.Parameter}    parameter
         * @return  {string}
         */
        GetDeclaration(parameter: Kusto.Language.Symbols.Parameter | null): string | null;
        /**
         * Gets the text of a parameter list of a function declaration for the specified parameters.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.Parameter
         * @memberof Kusto.Language.Symbols.Parameter
         * @param   {System.Collections.Generic.IReadOnlyList$1}    parameters
         * @return  {string}
         */
        GetParameterListDeclaration(parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null): string | null;
        /**
         * Gets the text of a table schema as it would appear as a type of a parameter in a function declaration.
         *
         * @static
         * @private
         * @this Kusto.Language.Symbols.Parameter
         * @memberof Kusto.Language.Symbols.Parameter
         * @param   {Kusto.Language.Symbols.TableSymbol}    table
         * @return  {string}
         */
        /**
         * Gets the text of a column as it would appear in the table type of a parameter of a function declaration.
         *
         * @static
         * @private
         * @this Kusto.Language.Symbols.Parameter
         * @memberof Kusto.Language.Symbols.Parameter
         * @param   {Kusto.Language.Symbols.ColumnSymbol}    column
         * @return  {string}
         */
    }
    var Parameter: ParameterFunc;

    /**
     * The known set of {@link }'s
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Symbols.ParameterLayouts
     */
    interface ParameterLayouts {
    }
    interface ParameterLayoutsFunc extends Function {
        prototype: ParameterLayouts;
        new (): ParameterLayouts;
        /**
         * Does not allow parameters to repeat.
          Optional parameters (minOccurring=0) cannot be skipped.
          Named arguments allowed.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ParameterLayouts
         * @type Kusto.Language.Symbols.ParameterLayout
         */
        Fixed: Kusto.Language.Symbols.ParameterLayout | null;
        /**
         * Allows for individual repeating parameters, transitioning based on type matching.
         Optional parameters (minOccurring=0) cannot be skipped.
         Named argument not allowed.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ParameterLayouts
         * @type Kusto.Language.Symbols.ParameterLayout
         */
        Repeating: Kusto.Language.Symbols.ParameterLayout | null;
        /**
         * Allows for individual repeating parameters, transitioning based on type matching.
         Optional parameters (minOccurring=0) may be skipped.
         Named arguments not allowed.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ParameterLayouts
         * @type Kusto.Language.Symbols.ParameterLayout
         */
        RepeatingSkipping: Kusto.Language.Symbols.ParameterLayout | null;
        /**
         * Allows for a single group of parameters to repeat together.
         Optional parameters (minOccurring=0) cannot be skipped and cannot be part of the repeating block.
         Named arguments not allowed.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ParameterLayouts
         * @type Kusto.Language.Symbols.ParameterLayout
         */
        BlockRepeating: Kusto.Language.Symbols.ParameterLayout | null;
        /**
         * A custom layout supplied by a builder function.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ParameterLayouts
         * @memberof Kusto.Language.Symbols.ParameterLayouts
         * @param   {Kusto.Language.Symbols.ParameterLayoutBuilder}    builder
         * @return  {Kusto.Language.Symbols.ParameterLayout}
         */
        Custom(builder: {(signature: Kusto.Language.Symbols.Signature, arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression>, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter>): void} | null): Kusto.Language.Symbols.ParameterLayout | null;
    }
    var ParameterLayouts: ParameterLayoutsFunc;

    enum CombineKind {
        UnifySameNameAndType = 0,
        UnifySameName = 1,
        UniqueNames = 2
    }

    /**
     * The kind of parameter type constraint specified in a {@link }
     *
     * @public
     * @class Kusto.Language.Symbols.ParameterTypeKind
     */
    enum ParameterTypeKind {
        Any = 0,
        Declared = 1,
        Scalar = 2,
        Tabular = 3,
        Database = 4,
        Cluster = 5,
        Integer = 6,
        RealOrDecimal = 7,
        StringOrDynamic = 8,
        StringOrArray = 9,
        IntegerOrArray = 10,
        DynamicArray = 11,
        DynamicBag = 12,
        Number = 13,
        NumberOrBool = 14,
        Summable = 15,
        Orderable = 16,
        NotRealOrBool = 17,
        NotDynamic = 18,
        NotBool = 19,
        Parameter0 = 20,
        Parameter1 = 21,
        Parameter2 = 22,
        CommonScalar = 23,
        CommonNumber = 24,
        CommonSummable = 25,
        CommonOrderable = 26,
        CommonScalarOrDynamic = 27
    }

    enum ResultNameKind {
        None = 0,
        NameAndFirstArgument = 1,
        NameAndOnlyArgument = 2,
        PrefixAndFirstArgument = 3,
        PrefixAndOnlyArgument = 4,
        FirstArgumentValueIfColumn = 5,
        PrefixOnly = 6,
        FirstArgument = 7,
        OnlyArgument = 8,
        Default
    }

    /**
     * The kind of return type specified in a {@link }
     *
     * @public
     * @class Kusto.Language.Symbols.ReturnTypeKind
     */
    enum ReturnTypeKind {
        Declared = 0,
        Computed = 1,
        Custom = 2,
        Parameter0 = 3,
        Parameter1 = 4,
        Parameter2 = 5,
        ParameterN = 6,
        Parameter0Literal = 7,
        Parameter1Literal = 8,
        ParameterNLiteral = 9,
        Parameter0Promoted = 10,
        Parameter0Cluster = 11,
        Parameter0Database = 12,
        Parameter0Table = 13,
        Parameter0ExternalTable = 14,
        Parameter0Array = 15,
        Common = 16,
        CommonNonDynamic = 17,
        Widest = 18,
        Parameter0MaterializedView = 19,
        Parameter0EntityGroup = 20,
        Parameter0StoredQueryResult = 21,
        Parameter0Graph = 22
    }

    enum ScalarFlags {
        None = 0,
        Integer = 1,
        Numeric = 2,
        Interval = 4,
        Summable = 8,
        Orderable = 16,
        All = 31
    }

    interface ScalarTypes {
    }
    interface ScalarTypesFunc extends Function {
        prototype: ScalarTypes;
        new (): ScalarTypes;
        /**
         * The dynamic type.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        Dynamic: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The bool type.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        Bool: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The int type.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        Int: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The long type.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        Long: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The real type.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        Real: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The decimal type.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        Decimal: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The datetime type.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        DateTime: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The timespan type.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        TimeSpan: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The guid type.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        Guid: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The type of a type literal.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        Type: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The string type.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        String: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The type used for null in dynamic expressions.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        Null: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * The type used when the type is unknown.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        Unknown: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * A dynamic type that is known to contain a boolean.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        DynamicBool: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * A dynamic type that is known to contain a long.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        DynamicLong: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * A dynamic type that is known to contail a real.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        DynamicReal: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * A dynamic type that is known to contain a datetime.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        DynamicDateTime: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * A dynamic type that is known to contain a timespan.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        DynamicTimeSpan: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * A dynamic type that is known to contain a guid.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        DynamicGuid: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * A dynamic type that is known to contain a string.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.ScalarSymbol
         */
        DynamicString: Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * A dynamic type that is known to contain a bag of properties (JSON object).
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicBagSymbol
         */
        DynamicBag: Kusto.Language.Symbols.DynamicBagSymbol | null;
        /**
         * A dynamic type that is known to contain an array.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArray: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * A dynamic type that is known to contain an array of bool.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArrayOfBool: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * A dynamic type that is known to contain an array of long.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArrayOfLong: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * A dynamic type that is known to contain an array of real.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArrayOfReal: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * A dynamic type that is known to contain an array of datetime.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArrayOfDateTime: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * A dynamic type that is known to contain an array of timespan.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArrayOfTimeSpan: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * A dynamic type that is known to contain an array of guid.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArrayOfGuid: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * A dynamic type that is known to contain an array of string.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArrayOfString: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * A dynamic type that is known to contain an array of arrays.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArrayOfArray: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * A dynamic type that is known to contain an array of property bags (JSON objects).
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArrayOfBag: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * A dynamic type that is known to contain an array of arrays of real.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArrayOfArrayOfReal: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * A dynamic type that is known to contain an array of arrays of string.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicArraySymbol
         */
        DynamicArrayOfArrayOfString: Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * The general shape of a geometry returned by a geometric function.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type Kusto.Language.Symbols.DynamicBagSymbol
         */
        GeoShape: Kusto.Language.Symbols.DynamicBagSymbol | null;
        /**
         * All known scalar symbols
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        All: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ScalarSymbol> | null;
        /**
         * Get the dynamic type for the specified underlying type.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ScalarTypes
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @param   {Kusto.Language.Symbols.TypeSymbol}    underlyingType
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetDynamic(underlyingType: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Returns the {@link } for a dynamic array of the specified element type.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ScalarTypes
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @param   {Kusto.Language.Symbols.TypeSymbol}            elementType
         * @return  {Kusto.Language.Symbols.DynamicArraySymbol}
         */
        GetDynamicArray(elementType: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Symbols.DynamicArraySymbol | null;
        /**
         * Gets the {@link } with the specified properties.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ScalarTypes
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @param   {System.Collections.Generic.IReadOnlyList$1}    properties
         * @return  {Kusto.Language.Symbols.DynamicBagSymbol}
         */
        GetDynamicBag$1(properties: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null): Kusto.Language.Symbols.DynamicBagSymbol | null;
        /**
         * Gets the {@link } with the specified properties.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ScalarTypes
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @param   {Array.<Kusto.Language.Symbols.ColumnSymbol>}    properties
         * @return  {Kusto.Language.Symbols.DynamicBagSymbol}
         */
        GetDynamicBag(properties: Kusto.Language.Symbols.ColumnSymbol[] | null): Kusto.Language.Symbols.DynamicBagSymbol | null;
        /**
         * Gets the {@link } with the specified properties.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ScalarTypes
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @param   {string}                                     schema    One or more properties specified as: (name: type, ...)
         * @return  {Kusto.Language.Symbols.DynamicBagSymbol}
         */
        GetDynamicBag$2(schema: string | null): Kusto.Language.Symbols.DynamicBagSymbol | null;
        /**
         * Gets the {@link } with the specified columns.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ScalarTypes
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columns
         * @return  {Kusto.Language.Symbols.TupleSymbol}
         */
        GetTuple$1(columns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null): Kusto.Language.Symbols.TupleSymbol | null;
        /**
         * Gets the {@link } with the specified columns.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ScalarTypes
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @param   {Array.<Kusto.Language.Symbols.ColumnSymbol>}    columns
         * @return  {Kusto.Language.Symbols.TupleSymbol}
         */
        GetTuple(columns: Kusto.Language.Symbols.ColumnSymbol[] | null): Kusto.Language.Symbols.TupleSymbol | null;
        /**
         * Gets the {@link } with the specified columns.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ScalarTypes
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @param   {string}                                schema    One or more columns specified as: (name: type, ...)
         * @return  {Kusto.Language.Symbols.TupleSymbol}
         */
        GetTuple$2(schema: string | null): Kusto.Language.Symbols.TupleSymbol | null;
        /**
         * Gets the {@link } associated with the specified type name.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.ScalarTypes
         * @memberof Kusto.Language.Symbols.ScalarTypes
         * @param   {string}                                 typeName
         * @return  {Kusto.Language.Symbols.ScalarSymbol}
         */
        GetSymbol(typeName: string | null): Kusto.Language.Symbols.ScalarSymbol | null;
    }
    var ScalarTypes: ScalarTypesFunc;

    /**
     * Generates text for symbols that can be parsed as table schema or function parameters.
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Symbols.SchemaDisplay
     */
    interface SchemaDisplay {
    }
    interface SchemaDisplayFunc extends Function {
        prototype: SchemaDisplay;
        new (): SchemaDisplay;
        /**
         * Gets the schema display text for the {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.SchemaDisplay
         * @memberof Kusto.Language.Symbols.SchemaDisplay
         * @param   {Kusto.Language.Symbols.Symbol}    symbol
         * @return  {string}
         */
        GetText(symbol: Kusto.Language.Symbols.Symbol | null): string | null;
        /**
         * Returns the type display text for the scalar type symbol.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.SchemaDisplay
         * @memberof Kusto.Language.Symbols.SchemaDisplay
         * @param   {Kusto.Language.Symbols.TypeSymbol}    type
         * @return  {string}
         */
        GetScalarTypeText(type: Kusto.Language.Symbols.TypeSymbol | null): string | null;
        /**
         * Returns the type display text for the parameter's type.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.SchemaDisplay
         * @memberof Kusto.Language.Symbols.SchemaDisplay
         * @param   {Kusto.Language.Symbols.Parameter}    parameter
         * @return  {string}
         */
        GetParameterTypeText(parameter: Kusto.Language.Symbols.Parameter | null): string | null;
    }
    var SchemaDisplay: SchemaDisplayFunc;

    /**
     * The parameter constraints and return type rules of a function or operator symbol.
     *
     * @public
     * @class Kusto.Language.Symbols.Signature
     */
    interface Signature {
        /**
         * The symbol this is a signature for.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function Symbol
         * @type Kusto.Language.Symbols.Symbol
         */
        Symbol: Kusto.Language.Symbols.Symbol | null;
        /**
         * The approach by which the return type is determined.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function ReturnKind
         * @type Kusto.Language.Symbols.ReturnTypeKind
         */
        ReturnKind: Kusto.Language.Symbols.ReturnTypeKind;
        /**
         * The declared parameters.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function Parameters
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null;
        /**
         * The minimum number of arguments an invocation of this signature can have.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function MinArgumentCount
         * @type number
         */
        MinArgumentCount: number;
        /**
         * The maximum number of arguments an invocation of this signature can have.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function MaxArgumentCount
         * @type number
         */
        MaxArgumentCount: number;
        /**
         * The declaration of the body of the function in source.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function Declaration
         * @type Kusto.Language.Syntax.FunctionBody
         */
        Declaration: Kusto.Language.Syntax.FunctionBody | null;
        /**
         * A custom function that evaluates the return type of this signature.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function CustomReturnType
         * @type Kusto.Language.Symbols.CustomReturnType
         */
        CustomReturnType: {(info: Kusto.Language.Symbols.CustomReturnTypeContext): Kusto.Language.Symbols.TypeSymbol} | null;
        /**
         * The rule that describes how parameters are associated with arguments
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function Layout
         * @type Kusto.Language.Symbols.ParameterLayout
         */
        Layout: Kusto.Language.Symbols.ParameterLayout | null;
        /**
         * If true, this signature is hidden from intellisense
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function IsHidden
         * @type boolean
         */
        IsHidden: boolean;
        /**
         * The name of an alternative function to use instead of this function/signature
         if this function is obsolete/deprecated.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function Alternative
         * @type string
         */
        Alternative: string | null;
        /**
         * True if this signature is considered obsolete/deprecated.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Signature
         * @function IsObsolete
         * @type boolean
         */
        IsObsolete: boolean;
        /**
         * If true, this signature can have a variable number of arguments.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function HasRepeatableParameters
         * @type boolean
         */
        HasRepeatableParameters: boolean;
        /**
         * If true, this signature has optional parameters.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function HasOptionalParameters
         * @type boolean
         */
        HasOptionalParameters: boolean;
        /**
         * If true, this signature has parameters that are expected to be aggregates.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Signature
         * @function HasAggregateParameters
         * @type boolean
         */
        HasAggregateParameters: boolean;
        /**
         * The body of the function, if declared within the query or database.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Signature
         * @function Body
         * @type string
         */
        Body: string | null;
        /**
         * The return type if specified as part of the signature.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Signature
         * @function DeclaredReturnType
         * @type Kusto.Language.Symbols.TypeSymbol
         */
        DeclaredReturnType: Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * True if the function allows named arguments
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Signature
         * @function AllowsNamedArguments
         * @type boolean
         */
        AllowsNamedArguments: boolean;
        Tabularity: Kusto.Language.Symbols.Tabularity;
        IsScalar: boolean;
        IsTabular: boolean;
        /**
         * Creates a new {@link } just like this one, but with a custom function that 
         builds a list of parameter associated with each argument.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {Kusto.Language.Symbols.ParameterLayoutBuilder}    customBuilder
         * @return  {Kusto.Language.Symbols.Signature}
         */
        WithLayout$1(customBuilder: {(signature: Kusto.Language.Symbols.Signature, arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression>, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter>): void} | null): Kusto.Language.Symbols.Signature | null;
        /**
         * Creates a new {@link } just like this one, but with a custom function that 
         builds a list of parameter associated with each argument.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {Kusto.Language.Symbols.ParameterLayout}    layout
         * @return  {Kusto.Language.Symbols.Signature}
         */
        WithLayout(layout: Kusto.Language.Symbols.ParameterLayout | null): Kusto.Language.Symbols.Signature | null;
        /**
         * Creates a {@link } just like this one, but with IsHidden property changed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {boolean}                             isHidden
         * @return  {Kusto.Language.Symbols.Signature}
         */
        WithIsHidden(isHidden: boolean): Kusto.Language.Symbols.Signature | null;
        /**
         * Creates a {@link } just like this one, but is hidden from intellisense.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @return  {Kusto.Language.Symbols.Signature}
         */
        Hide(): Kusto.Language.Symbols.Signature | null;
        /**
         * Creates a {@link } just like this one, but with Alternative property changed.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {string}                              alternative
         * @return  {Kusto.Language.Symbols.Signature}
         */
        WithAlternative(alternative: string | null): Kusto.Language.Symbols.Signature | null;
        /**
         * Creates a {@link } just like this one, but with Alternative property set.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {string}                              alternative
         * @return  {Kusto.Language.Symbols.Signature}
         */
        Obsolete(alternative: string | null): Kusto.Language.Symbols.Signature | null;
        /**
         * Gets the parameter given the parameter name.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {string}                              name
         * @return  {Kusto.Language.Symbols.Parameter}
         */
        GetParameter(name: string | null): Kusto.Language.Symbols.Parameter | null;
        /**
         * Builds a list of parameters as associated with the specified arguments.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments
         * @return  {System.Collections.Generic.List$1}
         */
        GetArgumentParameters($arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null): System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null;
        /**
         * Builds a list of parameters associated with the specified arguments.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments             
         * @param   {System.Collections.Generic.List$1}             argumentParameters
         * @return  {void}
         */
        GetArgumentParameters$2($arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        /**
         * Builds a list of parameters associated with the specified argument types.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes         
         * @param   {System.Collections.Generic.List$1}             argumentParameters
         * @return  {void}
         */
        GetArgumentParameters$1(argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        /**
         * Gets the set of possible parameters that could occur after the specified arguments
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments             
         * @param   {System.Collections.Generic.List$1}             possibleParameters
         * @return  {void}
         */
        GetNextPossibleParameters($arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, possibleParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        /**
         * True if the argument count represents a valid number of arguments.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {number}     argumentCount
         * @return  {boolean}
         */
        IsValidArgumentCount(argumentCount: number): boolean;
        /**
         * Gets the return type for the function as best as can be determined without specific call site arguments.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {Kusto.Language.GlobalState}           globals    The {@link } in context for any computations made in determining the return type.
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetReturnType(globals: Kusto.Language.GlobalState | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Gets the return type for the function as best as can be determined with a set of hypothetical argument types.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {Kusto.Language.GlobalState}                    globals          The {@link } in context for any computations made in determining the return type.
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes    A list of types for hypothetical arguments.
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetReturnType$1(globals: Kusto.Language.GlobalState | null, argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Gets the return type for the function as best as can be determined with a set of hypothetical argument types
         and corresponding their parameters.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {Kusto.Language.GlobalState}                    globals               The {@link } in context for any computations made in determining the return type.
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes         A list of types for hypothetical arguments.
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentParameters    A list of the parameters associated with each hypothetical argument.
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetReturnType$2(globals: Kusto.Language.GlobalState | null, argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, argumentParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Determines the tabularity of signatures with computed return types.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {Kusto.Language.GlobalState}    globals    The {@link } in context for any computations made in determining the tabularity.
         * @return  {void}
         */
        ComputeTabularity(globals: Kusto.Language.GlobalState | null): void;
        /**
         * Determine's the tabularity of this function signature from the syntax of the body.
         *
         * @instance
         * @private
         * @this Kusto.Language.Symbols.Signature
         * @memberof Kusto.Language.Symbols.Signature
         * @param   {Kusto.Language.GlobalState}           globals
         * @return  {Kusto.Language.Symbols.Tabularity}
         */
    }
    interface SignatureFunc extends Function {
        prototype: Signature;
        $ctor4: {
            new (returnKind: Kusto.Language.Symbols.ReturnTypeKind, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null): Signature
        };
        $ctor2: {
            new (returnKind: Kusto.Language.Symbols.ReturnTypeKind, parameters: Kusto.Language.Symbols.Parameter[] | null): Signature
        };
        $ctor6: {
            new (returnType: Kusto.Language.Symbols.TypeSymbol | null, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null): Signature
        };
        $ctor5: {
            new (returnType: Kusto.Language.Symbols.TypeSymbol | null, parameters: Kusto.Language.Symbols.Parameter[] | null): Signature
        };
        $ctor1: {
            new (customReturnType: {(info: Kusto.Language.Symbols.CustomReturnTypeContext): Kusto.Language.Symbols.TypeSymbol} | null, tabularity: Kusto.Language.Symbols.Tabularity, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null): Signature
        };
        ctor: {
            new (customReturnType: {(info: Kusto.Language.Symbols.CustomReturnTypeContext): Kusto.Language.Symbols.TypeSymbol} | null, tabularity: Kusto.Language.Symbols.Tabularity, parameters: Kusto.Language.Symbols.Parameter[] | null): Signature
        };
        $ctor10: {
            new (body: string | null, tabularity: Kusto.Language.Symbols.Tabularity, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null): Signature
        };
        $ctor9: {
            new (body: string | null, tabularity: Kusto.Language.Symbols.Tabularity, parameters: Kusto.Language.Symbols.Parameter[] | null): Signature
        };
        $ctor8: {
            new (declaration: Kusto.Language.Syntax.FunctionBody | null, parameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null): Signature
        };
        $ctor7: {
            new (declaration: Kusto.Language.Syntax.FunctionBody | null, parameters: Kusto.Language.Symbols.Parameter[] | null): Signature
        };
        /**
         * A parameter used to associate with an argument when no declared parameter matches.
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Signature
         * @type Kusto.Language.Symbols.Parameter
         */
        UnknownParameter: Kusto.Language.Symbols.Parameter | null;
    }
    var Signature: SignatureFunc;

    enum SymbolKind {
        None = 0,
        Primitive = 1,
        Variable = 2,
        Function = 3,
        Parameter = 4,
        Pattern = 5,
        Tuple = 6,
        Bag = 7,
        Array = 8,
        Column = 9,
        Table = 10,
        Graph = 11,
        Database = 12,
        Cluster = 13,
        Operator = 14,
        Group = 15,
        Void = 16,
        Error = 17,
        Command = 18,
        MaterializedView = 19,
        Option = 20,
        QueryOperatorParameter = 21,
        EntityGroup = 22,
        EntityGroupElement = 23,
        StoredQueryResult = 24,
        GraphModel = 25,
        GraphSnapshot = 26
    }

    enum SymbolMatch {
        None = 0,
        Column = 1,
        Table = 2,
        ExternalTable = 4,
        Function = 8,
        View = 16,
        Local = 32,
        Database = 64,
        Cluster = 128,
        EntityGroup = 256,
        EntityGroupElement = 512,
        Scalar = 1024,
        Tabular = 2048,
        NonScalar = 4096,
        MaterializedView = 8192,
        Option = 16384,
        Graph = 32768,
        StoredQueryResult = 65536,
        GraphModel = 131072,
        GraphSnapshot = 262144,
        Any = 435195,
        Default = 41791
    }

    interface PatternSignature {
        Symbol: Kusto.Language.Symbols.PatternSymbol | null;
        ArgumentValues: System.Collections.Generic.IReadOnlyList$1<string> | null;
        PathValue: string | null;
        Signature: Kusto.Language.Symbols.Signature | null;
    }
    interface PatternSignatureFunc extends Function {
        prototype: PatternSignature;
        $ctor1: {
            new (argumentValues: System.Collections.Generic.IReadOnlyList$1<string> | null, pathValue: string | null, body: string | null): PatternSignature
        };
        ctor: {
            new (argumentValues: System.Collections.Generic.IReadOnlyList$1<string> | null, pathValue: string | null, body: Kusto.Language.Syntax.FunctionBody | null): PatternSignature
        };
    }
    var PatternSignature: PatternSignatureFunc;

    interface ParameterLayout {
        /**
         * Gets the parameters corresponding to the set of argument types for the specified signature.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ParameterLayout
         * @memberof Kusto.Language.Symbols.ParameterLayout
         * @param   {Kusto.Language.Symbols.Signature}              signature             
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes         
         * @param   {System.Collections.Generic.List$1}             argumentParameters
         * @return  {void}
         */
        GetArgumentParameters(signature: Kusto.Language.Symbols.Signature | null, argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        /**
         * Gets the set of possible parameters for an argument that would follow after the specified set of existing arguments.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.ParameterLayout
         * @memberof Kusto.Language.Symbols.ParameterLayout
         * @param   {Kusto.Language.Symbols.Signature}              signature             
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments             
         * @param   {System.Collections.Generic.List$1}             possibleParameters
         * @return  {void}
         */
        GetNextPossibleParameters(signature: Kusto.Language.Symbols.Signature | null, $arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, possibleParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
        IsValidArgumentCount(signature: Kusto.Language.Symbols.Signature | null, argumentCount: number): boolean;
        /**
         * Gets the parameters that correspond to the set of arguments for the specified signature.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Symbols.ParameterLayout
         * @memberof Kusto.Language.Symbols.ParameterLayout
         * @param   {Kusto.Language.Symbols.Signature}              signature             
         * @param   {System.Collections.Generic.IReadOnlyList$1}    arguments             
         * @param   {System.Collections.Generic.List$1}             argumentParameters
         * @return  {void}
         */
        GetArgumentParameters$1(signature: Kusto.Language.Symbols.Signature | null, $arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, argumentParameters: System.Collections.Generic.List$1<Kusto.Language.Symbols.Parameter> | null): void;
    }
    interface ParameterLayoutFunc extends Function {
        prototype: ParameterLayout;
        new (): ParameterLayout;
    }
    var ParameterLayout: ParameterLayoutFunc;

    interface Scope {
        /**
         * Gets all the symbols in the scope with the specified kind.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Scope
         * @memberof Kusto.Language.Symbols.Scope
         * @param   {Kusto.Language.Symbols.SymbolMatch}    match      
         * @param   {System.Collections.Generic.List$1}     symbols
         * @return  {void}
         */
        GetSymbols(match: Kusto.Language.Symbols.SymbolMatch, symbols: System.Collections.Generic.List$1<Kusto.Language.Symbols.Symbol> | null): void;
        /**
         * Gets all symbols in the scope with the specified name and kind.
         *
         * @instance
         * @abstract
         * @public
         * @this Kusto.Language.Symbols.Scope
         * @memberof Kusto.Language.Symbols.Scope
         * @param   {string}                                name       
         * @param   {Kusto.Language.Symbols.SymbolMatch}    match      
         * @param   {System.Collections.Generic.List$1}     symbols
         * @return  {void}
         */
        GetSymbols$1(name: string | null, match: Kusto.Language.Symbols.SymbolMatch, symbols: System.Collections.Generic.List$1<Kusto.Language.Symbols.Symbol> | null): void;
    }
    interface ScopeFunc extends Function {
        prototype: Scope;
        new (): Scope;
    }
    var Scope: ScopeFunc;

    interface Symbol {
        /**
         * The name of the symbol.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.Symbol
         * @function Name
         * @type string
         */
        Name: string | null;
        /**
         * An alternate name of the symbol.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Symbol
         * @function AlternateName
         * @type string
         */
        AlternateName: string | null;
        /**
         * The {@link } of the symbol.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Symbol
         * @function Kind
         * @type Kusto.Language.Symbols.SymbolKind
         */
        Kind: Kusto.Language.Symbols.SymbolKind;
        /**
         * If true, the symbol is hidden from Intellisense.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Symbol
         * @function IsHidden
         * @type boolean
         */
        IsHidden: boolean;
        /**
         * True if the symbol is an error symbol.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Symbol
         * @function IsError
         * @type boolean
         */
        IsError: boolean;
        /**
         * Identifies whether the symbol is scalar or tabular.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Symbol
         * @function Tabularity
         * @type Kusto.Language.Symbols.Tabularity
         */
        Tabularity: Kusto.Language.Symbols.Tabularity;
        /**
         * True if the symbol is scalar or unknown.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Symbol
         * @function IsScalar
         * @type boolean
         */
        IsScalar: boolean;
        /**
         * True if the symbol is tabular or unknown.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Symbol
         * @function IsTabular
         * @type boolean
         */
        IsTabular: boolean;
        /**
         * All the symbols contained by this symbol.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Symbols.Symbol
         * @function Members
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Members: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Symbol> | null;
        /**
         * Gets all the matching members.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Symbol
         * @memberof Kusto.Language.Symbols.Symbol
         * @param   {string}                                name          
         * @param   {Kusto.Language.Symbols.SymbolMatch}    match         
         * @param   {System.Collections.Generic.List$1}     symbols       
         * @param   {boolean}                               ignoreCase
         * @return  {void}
         */
        GetMembers$1(name: string | null, match: Kusto.Language.Symbols.SymbolMatch, symbols: System.Collections.Generic.List$1<Kusto.Language.Symbols.Symbol> | null, ignoreCase?: boolean): void;
        /**
         * Gets all the matching members.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Symbol
         * @memberof Kusto.Language.Symbols.Symbol
         * @param   {Kusto.Language.Symbols.SymbolMatch}    match         
         * @param   {System.Collections.Generic.List$1}     symbols       
         * @param   {boolean}                               ignoreCase
         * @return  {void}
         */
        GetMembers(match: Kusto.Language.Symbols.SymbolMatch, symbols: System.Collections.Generic.List$1<Kusto.Language.Symbols.Symbol> | null, ignoreCase?: boolean): void;
        /**
         * Returns the first member that matches or null.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Symbol
         * @memberof Kusto.Language.Symbols.Symbol
         * @param   {string}                                name          
         * @param   {Kusto.Language.Symbols.SymbolMatch}    match         
         * @param   {boolean}                               ignoreCase
         * @return  {Kusto.Language.Symbols.Symbol}
         */
        GetFirstMember(name: string | null, match?: Kusto.Language.Symbols.SymbolMatch, ignoreCase?: boolean): Kusto.Language.Symbols.Symbol | null;
        /**
         * True if this symbol can be assigned to the specified type.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Symbol
         * @memberof Kusto.Language.Symbols.Symbol
         * @param   {Kusto.Language.Symbols.Symbol}        targetType           
         * @param   {Kusto.Language.Symbols.Conversion}    allowedConversion
         * @return  {boolean}
         */
        IsAssignableTo(targetType: Kusto.Language.Symbols.Symbol | null, allowedConversion?: Kusto.Language.Symbols.Conversion): boolean;
        /**
         * True if this symbol can be assigned to any of the specified types.
         *
         * @instance
         * @public
         * @this Kusto.Language.Symbols.Symbol
         * @memberof Kusto.Language.Symbols.Symbol
         * @param   {System.Collections.Generic.IReadOnlyList$1}    targetTypes          
         * @param   {Kusto.Language.Symbols.Conversion}             allowedConversion
         * @return  {boolean}
         */
        IsAssignableToAny(targetTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, allowedConversion?: Kusto.Language.Symbols.Conversion): boolean;
    }
    interface SymbolFunc extends Function {
        prototype: Symbol;
        /**
         * Determines the result type of an expression that references the specified symbol
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.Symbol
         * @memberof Kusto.Language.Symbols.Symbol
         * @param   {Kusto.Language.Symbols.Symbol}        symbol
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetResultType(symbol: Kusto.Language.Symbols.Symbol | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * True if a value of type {@link } can be assigned to any types in {@link }
         *
         * @static
         * @private
         * @this Kusto.Language.Symbols.Symbol
         * @memberof Kusto.Language.Symbols.Symbol
         * @param   {System.Collections.Generic.IReadOnlyList$1}    targetTypes          
         * @param   {Kusto.Language.Symbols.Symbol}                 sourceType           
         * @param   {Kusto.Language.Symbols.Conversion}             allowedConversion
         * @return  {boolean}
         */
        /**
         * True if a value of type {@link } can be assigned to of type {@link }
         *
         * @static
         * @private
         * @this Kusto.Language.Symbols.Symbol
         * @memberof Kusto.Language.Symbols.Symbol
         * @param   {Kusto.Language.Symbols.Symbol}        targetType           
         * @param   {Kusto.Language.Symbols.Symbol}        sourceType           
         * @param   {Kusto.Language.Symbols.Conversion}    allowedConversion
         * @return  {boolean}
         */
        /**
         * True if the members of the source type are assignable to the members of the target type.
         *
         * @static
         * @private
         * @this Kusto.Language.Symbols.Symbol
         * @memberof Kusto.Language.Symbols.Symbol
         * @param   {Kusto.Language.Symbols.Symbol}    target    
         * @param   {Kusto.Language.Symbols.Symbol}    source
         * @return  {boolean}
         */
        /**
         * True if a bag value can be assigned to a parameter of specific bag type.
         *
         * @static
         * @private
         * @this Kusto.Language.Symbols.Symbol
         * @memberof Kusto.Language.Symbols.Symbol
         * @param   {Kusto.Language.Symbols.DynamicBagSymbol}    targetBag    
         * @param   {Kusto.Language.Symbols.DynamicBagSymbol}    sourceBag
         * @return  {boolean}
         */
        /**
         * True if a table value can be assigned to a parameter of a specific table type.
         *
         * @static
         * @private
         * @this Kusto.Language.Symbols.Symbol
         * @memberof Kusto.Language.Symbols.Symbol
         * @param   {Kusto.Language.Symbols.TableSymbol}    target    
         * @param   {Kusto.Language.Symbols.TableSymbol}    source
         * @return  {boolean}
         */
    }
    var Symbol: SymbolFunc;

    interface TableStateExtensions {
    }
    interface TableStateExtensionsFunc extends Function {
        prototype: TableStateExtensions;
        new (): TableStateExtensions;
        Has(state: Kusto.Language.Symbols.TableState, test: Kusto.Language.Symbols.TableState): boolean;
        With(state: Kusto.Language.Symbols.TableState, stateToAdd: Kusto.Language.Symbols.TableState): Kusto.Language.Symbols.TableState;
        Without(state: Kusto.Language.Symbols.TableState, stateToRemove: Kusto.Language.Symbols.TableState): Kusto.Language.Symbols.TableState;
        /**
         * The table is new, but inherits any global state from the current state.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TableStateExtensions
         * @memberof Kusto.Language.Symbols.TableStateExtensions
         * @param   {Kusto.Language.Symbols.TableState}    state
         * @return  {Kusto.Language.Symbols.TableState}
         */
        New(state: Kusto.Language.Symbols.TableState): Kusto.Language.Symbols.TableState;
        /**
         * The table is open, and may have more columns than specified.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TableStateExtensions
         * @memberof Kusto.Language.Symbols.TableStateExtensions
         * @param   {Kusto.Language.Symbols.TableState}    state
         * @return  {Kusto.Language.Symbols.TableState}
         */
        Open(state: Kusto.Language.Symbols.TableState): Kusto.Language.Symbols.TableState;
        /**
         * The table is not sorted.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TableStateExtensions
         * @memberof Kusto.Language.Symbols.TableStateExtensions
         * @param   {Kusto.Language.Symbols.TableState}    state
         * @return  {Kusto.Language.Symbols.TableState}
         */
        Unsorted(state: Kusto.Language.Symbols.TableState): Kusto.Language.Symbols.TableState;
    }
    var TableStateExtensions: TableStateExtensionsFunc;

    enum Tabularity {
        None = 0,
        Scalar = 1,
        Tabular = 2,
        Other = 3,
        Unknown = 4,
        Unspecified = 5
    }

    interface TypeFacts {
    }
    interface TypeFactsFunc extends Function {
        prototype: TypeFacts;
        new (): TypeFacts;
        /**
         * Gets the element type of an array or null if the type is not an array or dynamic.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.TypeSymbol}    type
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetElementType(type: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Returns the widest numeric type from the set of types
         The widest type is the one that can contain the values of all the other types:
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Array.<Kusto.Language.Symbols.TypeSymbol>}    scalarTypes
         * @return  {Kusto.Language.Symbols.ScalarSymbol}
         */
        GetWidestScalarType(scalarTypes: Kusto.Language.Symbols.TypeSymbol[] | null): Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * Returns the widest scalar type from the set of types, or null if there are no scalar types.
         The widest type is the one that can contain the values of all the other types:
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {System.Collections.Generic.IReadOnlyList$1}    scalarTypes
         * @return  {Kusto.Language.Symbols.ScalarSymbol}
         */
        GetWidestScalarType$1(scalarTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null): Kusto.Language.Symbols.ScalarSymbol | null;
        /**
         * Gets the common scalar type amongst a set of types.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {System.Collections.Generic.IReadOnlyList$1}    types                
         * @param   {System.Func}                                   fnInclude            
         * @param   {Kusto.Language.Symbols.Conversion}             allowedConversion    
         * @param   {Kusto.Language.Symbols.TypeSymbol}             defaultType
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetCommonType(types: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, fnInclude?: {(arg: Kusto.Language.Symbols.TypeSymbol): boolean} | null, allowedConversion?: Kusto.Language.Symbols.Conversion, defaultType?: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Gets the common scalar type amongst a set of types.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {System.Collections.Generic.IReadOnlyList$1}    types                 
         * @param   {Kusto.Language.Symbols.Conversion}             allowedConversions
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetCommonScalarType$1(types: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, allowedConversions?: Kusto.Language.Symbols.Conversion): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Gets the common scalar type amongst a set of types.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Array.<Kusto.Language.Symbols.TypeSymbol>}    types
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetCommonScalarType(types: Kusto.Language.Symbols.TypeSymbol[] | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Gets the common scalar result type amongst a set of expressions.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {System.Collections.Generic.IReadOnlyList$1}    expressions           
         * @param   {Kusto.Language.Symbols.Conversion}             allowedConversions    
         * @param   {Kusto.Language.Symbols.TypeSymbol}             defaultType
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetCommonResultType$2(expressions: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.Expression> | null, allowedConversions?: Kusto.Language.Symbols.Conversion, defaultType?: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Gets the common scalar result type amongst a set of expressions.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Array.<Kusto.Language.Syntax.Expression>}    expressions
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetCommonResultType(expressions: Kusto.Language.Syntax.Expression[] | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Gets the common scalar result type amongst a set of expressions.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Syntax.SyntaxList$1}    expressions           
         * @param   {Kusto.Language.Symbols.Conversion}     allowedConversions    
         * @param   {Kusto.Language.Symbols.TypeSymbol}     defaultType           
         * @param   {boolean}                               ignoreDynamic
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetCommonResultType$1(expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null, allowedConversions?: Kusto.Language.Symbols.Conversion, defaultType?: Kusto.Language.Symbols.TypeSymbol | null, ignoreDynamic?: boolean): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Gets the common type amongst a set of columns.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columns               
         * @param   {Kusto.Language.Symbols.Conversion}             allowedConversions    
         * @param   {Kusto.Language.Symbols.TypeSymbol}             defaultType
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetCommonColumnType(columns: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null, allowedConversions?: Kusto.Language.Symbols.Conversion, defaultType?: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Gets the type that is wider/more-general for each specified type.
         *
         * @static
         * @private
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.TypeSymbol}    typeA                 
         * @param   {Kusto.Language.Symbols.TypeSymbol}    typeB                 
         * @param   {Kusto.Language.Symbols.Conversion}    allowedConversions    
         * @param   {Kusto.Language.Symbols.TypeSymbol}    commonType
         * @return  {boolean}
         */
        /**
         * Returns true if the specified conversion is allowed given the allowed conversions.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Conversion}    conversion            
         * @param   {Kusto.Language.Symbols.Conversion}    allowedConversions
         * @return  {boolean}
         */
        IsConversionAllowed(conversion: Kusto.Language.Symbols.Conversion, allowedConversions: Kusto.Language.Symbols.Conversion): boolean;
        /**
         * Gets the common argument type for arguments corresponding to parameters constrained to specific {@link }.CommonXXX values.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentParameters    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    argumentTypes         
         * @param   {Kusto.Language.Symbols.TypeSymbol}             defaultType           
         * @param   {boolean}                                       ignoreDynamic
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        GetCommonArgumentType(argumentParameters: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.Parameter> | null, argumentTypes: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.TypeSymbol> | null, defaultType?: Kusto.Language.Symbols.TypeSymbol | null, ignoreDynamic?: boolean): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Promotes int to long
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.TypeSymbol}    type
         * @return  {Kusto.Language.Symbols.TypeSymbol}
         */
        PromoteToLong(type: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * Returns true if this type can be promoted to the specified type.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.TypeSymbol}    sourceType    
         * @param   {Kusto.Language.Symbols.TypeSymbol}    targetType
         * @return  {boolean}
         */
        IsPromotableTo(sourceType: Kusto.Language.Symbols.TypeSymbol | null, targetType: Kusto.Language.Symbols.TypeSymbol | null): boolean;
        /**
         * Returns true if the type is an integer.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsInteger(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is an interval.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsInterval(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is numeric.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsNumeric(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is summable.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsSummable(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is orderable.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsOrderable(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is any scalar type except any dynamic symbol.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsAnyScalarExceptDynamic(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is any scalar type except bool or dynamic(bool)
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsAnyScalarExceptBool(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is any scalar except real, bool, dynamic(real) or dynamic(bool)
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsAnyScalarExceptReadOrBool(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is numeric or bool
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsNumericOrBool(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is real or decimal
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsRealOrDecimal(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is string or any dynamic
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsStringOrDynamic(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is string or any array of strings.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsStringOrArray(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is any integer, any dynamic integer, dynamic or dynamic array.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsIntegerOrArray(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is any integer, any integer, dynamic integer or dynamic.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsIntegerOrDynamic(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is any dynamic array type or dynamic.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsDynamicArray(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is any dynamic bag type or dynamic.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsDynamicBag(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns true if the type is dynamic, array or bag.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {Kusto.Language.Symbols.Symbol}    type
         * @return  {boolean}
         */
        IsDynamicArrayOrBag(type: Kusto.Language.Symbols.Symbol | null): boolean;
        /**
         * Returns this list of columns from both lists.
         If each contains the same named columns, a column of the common type is used.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columnsA    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columnsB
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        Union(columnsA: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null, columnsB: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
        /**
         * Returns the list of columns that appear in both lists.
         The column types are converted to the common type.
         *
         * @static
         * @public
         * @this Kusto.Language.Symbols.TypeFacts
         * @memberof Kusto.Language.Symbols.TypeFacts
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columnsA    
         * @param   {System.Collections.Generic.IReadOnlyList$1}    columnsB
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        Intersect(columnsA: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null, columnsB: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Symbols.ColumnSymbol> | null;
    }
    var TypeFacts: TypeFactsFunc;

    /**
     * A symbol representing a type that is any scalar type, 
     and is stored dynamic/json column.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Symbols.DynamicSymbol
     * @augments Kusto.Language.Symbols.ScalarSymbol
     */
    interface DynamicSymbol extends Kusto.Language.Symbols.ScalarSymbol {
    }
    interface DynamicSymbolFunc extends Function {
        prototype: DynamicSymbol;
    }
    var DynamicSymbol: DynamicSymbolFunc;

    /**
     * A symbol for scalar types: long, real, string, bool, etc.
     *
     * @public
     * @class Kusto.Language.Symbols.PrimitiveSymbol
     * @augments Kusto.Language.Symbols.ScalarSymbol
     */
    interface PrimitiveSymbol extends Kusto.Language.Symbols.ScalarSymbol {
        Kind: Kusto.Language.Symbols.SymbolKind;
        Aliases: System.Collections.Generic.IReadOnlyList$1<string> | null;
        IsInteger: boolean;
        IsNumeric: boolean;
        IsInterval: boolean;
        IsSummable: boolean;
        IsOrderable: boolean;
        IsWiderThan(scalar: Kusto.Language.Symbols.ScalarSymbol | null): boolean;
    }
    interface PrimitiveSymbolFunc extends Function {
        prototype: PrimitiveSymbol;
        new (name: string | null, aliases: string[] | null, flags: Kusto.Language.Symbols.ScalarFlags, widerThan: Kusto.Language.Symbols.ScalarSymbol[] | null): PrimitiveSymbol;
    }
    var PrimitiveSymbol: PrimitiveSymbolFunc;

    /**
     * The argument kind expected for a {@link }
     *
     * @public
     * @class Kusto.Language.Symbols.ArgumentKind
     */
    enum ArgumentKind {
        Expression = 0,
        Expression_Parameter0_Element = 1,
        StarOnly = 2,
        StarAllowed = 3,
        Aggregate = 4,
        Column = 5,
        Column_Parameter0 = 6,
        Column_Parameter0_Common = 7,
        Literal = 8,
        LiteralNotEmpty = 9,
        Constant = 10
    }

    /**
     * A table declared external to Kusto
     *
     * @public
     * @class Kusto.Language.Symbols.ExternalTableSymbol
     * @augments Kusto.Language.Symbols.TableSymbol
     */
    interface ExternalTableSymbol extends Kusto.Language.Symbols.TableSymbol {
    }
    interface ExternalTableSymbolFunc extends Function {
        prototype: ExternalTableSymbol;
        $ctor3: {
            new (name: string | null, columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null, description: string | null): ExternalTableSymbol
        };
        $ctor1: {
            new (name: string | null, columns: Kusto.Language.Symbols.ColumnSymbol[] | null): ExternalTableSymbol
        };
        $ctor4: {
            new (name: string | null, columns: string | null, description: string | null): ExternalTableSymbol
        };
    }
    var ExternalTableSymbol: ExternalTableSymbolFunc;

    interface MaterializedViewSymbol extends Kusto.Language.Symbols.TableSymbol {
        /**
         * The query that that is the source of the materialized view.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Symbols.MaterializedViewSymbol
         * @function MaterializedViewQuery
         * @type string
         */
        MaterializedViewQuery: string | null;
        Kind: Kusto.Language.Symbols.SymbolKind;
    }
    interface MaterializedViewSymbolFunc extends Function {
        prototype: MaterializedViewSymbol;
        $ctor2: {
            new (name: string | null, columns: System.Collections.Generic.IEnumerable$1<Kusto.Language.Symbols.ColumnSymbol> | null, query: string | null, description: string | null): MaterializedViewSymbol
        };
        $ctor3: {
            new (name: string | null, columns: string | null, query: string | null, description: string | null): MaterializedViewSymbol
        };
    }
    var MaterializedViewSymbol: MaterializedViewSymbolFunc;

}

declare namespace Kusto.Language.Syntax {
    interface TopNestedWithOthersClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OthersKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Equal: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface TopNestedWithOthersClauseFunc extends Function {
        prototype: TopNestedWithOthersClause;
    }
    var TopNestedWithOthersClause: TopNestedWithOthersClauseFunc;

    /** @namespace Kusto.Language.Syntax */

    /**
     * A node in the Kusto syntax that represents the toscalar operation.
     *
     * @public
     * @class Kusto.Language.Syntax.ToScalarExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface ToScalarExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ToScalar: Kusto.Language.Syntax.SyntaxToken | null;
        KindParameter: Kusto.Language.Syntax.NamedParameter | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ToScalarExpressionFunc extends Function {
        prototype: ToScalarExpression;
    }
    var ToScalarExpression: ToScalarExpressionFunc;

    /**
     * A node in the Kusto syntax that represents a typeof expression
     *
     * @public
     * @class Kusto.Language.Syntax.TypeOfLiteralExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface TypeOfLiteralExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        TypeOfKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Types: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        IsLiteral: boolean;
        LiteralValueInfo: Kusto.Language.Syntax.ValueInfo | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface TypeOfLiteralExpressionFunc extends Function {
        prototype: TypeOfLiteralExpression;
    }
    var TypeOfLiteralExpression: TypeOfLiteralExpressionFunc;

    interface TypedColumnReference extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Column: Kusto.Language.Syntax.NameReference | null;
        ColonToken: Kusto.Language.Syntax.SyntaxToken | null;
        Type: Kusto.Language.Syntax.TypeExpression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface TypedColumnReferenceFunc extends Function {
        prototype: TypedColumnReference;
    }
    var TypedColumnReference: TypedColumnReferenceFunc;

    interface TopHittersByClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface TopHittersByClauseFunc extends Function {
        prototype: TopHittersByClause;
    }
    var TopHittersByClause: TopHittersByClauseFunc;

    interface WildcardedName extends Kusto.Language.Syntax.Name {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Pattern: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        SimpleName: string | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface WildcardedNameFunc extends Function {
        prototype: WildcardedName;
    }
    var WildcardedName: WildcardedNameFunc;

    /**
     * A node in the Kusto syntax that represents the totable operation.
     *
     * @public
     * @class Kusto.Language.Syntax.ToTableExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface ToTableExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ToTable: Kusto.Language.Syntax.SyntaxToken | null;
        KindParameter: Kusto.Language.Syntax.NamedParameter | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ToTableExpressionFunc extends Function {
        prototype: ToTableExpression;
    }
    var ToTableExpression: ToTableExpressionFunc;

    /**
     * A node in the kusto syntax that represents a single identifier name.
     *
     * @public
     * @class Kusto.Language.Syntax.TokenName
     * @augments Kusto.Language.Syntax.Name
     */
    interface TokenName extends Kusto.Language.Syntax.Name {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The token that is the name.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.TokenName
         * @function Name
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Name: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        SimpleName: string | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface TokenNameFunc extends Function {
        prototype: TokenName;
    }
    var TokenName: TokenNameFunc;

    interface TypeExpression extends Kusto.Language.Syntax.Expression {
    }
    interface TypeExpressionFunc extends Function {
        prototype: TypeExpression;
    }
    var TypeExpression: TypeExpressionFunc;

    interface PipeExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Expression: Kusto.Language.Syntax.Expression | null;
        Bar: Kusto.Language.Syntax.SyntaxToken | null;
        Operator: Kusto.Language.Syntax.QueryOperator | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PipeExpressionFunc extends Function {
        prototype: PipeExpression;
    }
    var PipeExpression: PipeExpressionFunc;

    /**
     * A node in the kusto syntax that represents a prefix unary expression.
     *
     * @public
     * @class Kusto.Language.Syntax.PrefixUnaryExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface PrefixUnaryExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The operator token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.PrefixUnaryExpression
         * @function Operator
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Operator: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.PrefixUnaryExpression
         * @function Expression
         * @type Kusto.Language.Syntax.Expression
         */
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PrefixUnaryExpressionFunc extends Function {
        prototype: PrefixUnaryExpression;
    }
    var PrefixUnaryExpression: PrefixUnaryExpressionFunc;

    interface QueryParametersStatement extends Kusto.Language.Syntax.Statement {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DeclareKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        QueryParametersKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.FunctionParameter>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface QueryParametersStatementFunc extends Function {
        prototype: QueryParametersStatement;
    }
    var QueryParametersStatement: QueryParametersStatementFunc;

    interface ReduceByWithClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NamedParameter>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ReduceByWithClauseFunc extends Function {
        prototype: ReduceByWithClause;
    }
    var ReduceByWithClause: ReduceByWithClauseFunc;

    interface RenderWithClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        LeadingComma: Kusto.Language.Syntax.SyntaxToken | null;
        Properties: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NamedParameter>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface RenderWithClauseFunc extends Function {
        prototype: RenderWithClause;
    }
    var RenderWithClause: RenderWithClauseFunc;

    interface RestrictStatement extends Kusto.Language.Syntax.Statement {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        RestrictKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        AccessKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ToKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        WithClause: Kusto.Language.Syntax.RestrictStatementWithClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface RestrictStatementFunc extends Function {
        prototype: RestrictStatement;
    }
    var RestrictStatement: RestrictStatementFunc;

    /**
     * An element in a list with an optional separator token.
     *
     * @public
     * @class Kusto.Language.Syntax.SeparatedElement$1
     * @augments Kusto.Language.Syntax.SeparatedElement
     */
    interface SeparatedElement$1<TElement> extends Kusto.Language.Syntax.SeparatedElement {
        /**
         * The element in a list
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SeparatedElement$1
         * @function Element$1
         * @type TElement
         */
        Element$1: TElement | null;
    }
    interface SeparatedElement$1Func extends Function {
        <TElement>($TElement: Bridge.TypeRef<TElement>): {
            prototype: SeparatedElement$1<TElement>;
            new (element: TElement | null, separator: Kusto.Language.Syntax.SyntaxToken | null): SeparatedElement$1<TElement>;
            Empty(): Kusto.Language.Syntax.SeparatedElement$1<TElement> | null;
        }
    }
    var SeparatedElement$1: SeparatedElement$1Func;

    interface SetOptionStatement extends Kusto.Language.Syntax.Statement {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        SetKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        ValueClause: Kusto.Language.Syntax.OptionValueClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SetOptionStatementFunc extends Function {
        prototype: SetOptionStatement;
    }
    var SetOptionStatement: SetOptionStatementFunc;

    /**
     * A list of {@link }'s.
     *
     * @public
     * @class Kusto.Language.Syntax.SyntaxList$1
     * @augments Kusto.Language.Syntax.SyntaxList
     * @implements  System.Collections.Generic.IReadOnlyList$1
     */
    interface SyntaxList$1<TElement> extends Kusto.Language.Syntax.SyntaxList,System.Collections.Generic.IReadOnlyList$1<TElement> {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ElementType: System.Type | null;
        /**
         * Gets the element at the index.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxList$1
         * @memberof Kusto.Language.Syntax.SyntaxList$1
         * @param   {number}      index
         * @return  {TElement}
         */
        getItem$1(index: number): TElement;
        GetEnumerator$1(): System.Collections.Generic.IEnumerator$1<TElement> | null;
        /**
         * Creates a copy of this {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxList$1
         * @memberof Kusto.Language.Syntax.SyntaxList$1
         * @param   {boolean}                               includeDiagnostics
         * @return  {Kusto.Language.Syntax.SyntaxList$1}
         */
        Clone$2(includeDiagnostics?: boolean): Kusto.Language.Syntax.SyntaxList$1<TElement> | null;
    }
    interface SyntaxList$1Func extends Function {
        <TElement>($TElement: Bridge.TypeRef<TElement>): {
            prototype: SyntaxList$1<TElement>;
            $ctor1: {
                new (elements: System.Collections.Generic.IEnumerable$1<TElement> | null, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): SyntaxList$1<TElement>
            };
            ctor: {
                new (elements: TElement[] | null): SyntaxList$1<TElement>
            };
            Empty(): Kusto.Language.Syntax.SyntaxList$1<TElement> | null;
        }
    }
    var SyntaxList$1: SyntaxList$1Func;

    interface SummarizeByClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        BinClause: Kusto.Language.Syntax.NamedExpression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SummarizeByClauseFunc extends Function {
        prototype: SummarizeByClause;
    }
    var SummarizeByClause: SummarizeByClauseFunc;

    /**
     * A node in the kusto syntax that represents an expression comprised of a single token.
     *
     * @public
     * @class Kusto.Language.Syntax.StarExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface StarExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.StarExpression
         * @function AsteriskToken
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        AsteriskToken: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface StarExpressionFunc extends Function {
        prototype: StarExpression;
    }
    var StarExpression: StarExpressionFunc;

    interface PatternStatement extends Kusto.Language.Syntax.Statement {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DeclareKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        PatternKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        Pattern: Kusto.Language.Syntax.PatternDeclaration | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PatternStatementFunc extends Function {
        prototype: PatternStatement;
    }
    var PatternStatement: PatternStatementFunc;

    interface TopNestedClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        TopNestedKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        OfKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OfExpression: Kusto.Language.Syntax.Expression | null;
        WithOthersClause: Kusto.Language.Syntax.TopNestedWithOthersClause | null;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ByExpression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface TopNestedClauseFunc extends Function {
        prototype: TopNestedClause;
    }
    var TopNestedClause: TopNestedClauseFunc;

    interface PartitionColumnDeclaration extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        Colon: Kusto.Language.Syntax.SyntaxToken | null;
        Type: Kusto.Language.Syntax.TypeExpression | null;
        Equal: Kusto.Language.Syntax.SyntaxToken | null;
        Expr: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PartitionColumnDeclarationFunc extends Function {
        prototype: PartitionColumnDeclaration;
    }
    var PartitionColumnDeclaration: PartitionColumnDeclarationFunc;

    interface InlineExternalTableKindClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        KindKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        Value: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface InlineExternalTableKindClauseFunc extends Function {
        prototype: InlineExternalTableKindClause;
    }
    var InlineExternalTableKindClause: InlineExternalTableKindClauseFunc;

    interface MvApplyContextIdClause extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        IdKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Id: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MvApplyContextIdClauseFunc extends Function {
        prototype: MvApplyContextIdClause;
    }
    var MvApplyContextIdClause: MvApplyContextIdClauseFunc;

    interface MvApplyExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Expression: Kusto.Language.Syntax.Expression | null;
        ToTypeOf: Kusto.Language.Syntax.ToTypeOfClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MvApplyExpressionFunc extends Function {
        prototype: MvApplyExpression;
    }
    var MvApplyExpression: MvApplyExpressionFunc;

    interface MvApplyRowLimitClause extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        LimitKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        RowLimit: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MvApplyRowLimitClauseFunc extends Function {
        prototype: MvApplyRowLimitClause;
    }
    var MvApplyRowLimitClause: MvApplyRowLimitClauseFunc;

    interface MvApplySubqueryExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MvApplySubqueryExpressionFunc extends Function {
        prototype: MvApplySubqueryExpression;
    }
    var MvApplySubqueryExpression: MvApplySubqueryExpressionFunc;

    interface MvExpandExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Expression: Kusto.Language.Syntax.Expression | null;
        ToTypeOf: Kusto.Language.Syntax.ToTypeOfClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MvExpandExpressionFunc extends Function {
        prototype: MvExpandExpression;
    }
    var MvExpandExpression: MvExpandExpressionFunc;

    interface MvExpandRowLimitClause extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        LimitKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        RowLimit: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MvExpandRowLimitClauseFunc extends Function {
        prototype: MvExpandRowLimitClause;
    }
    var MvExpandRowLimitClause: MvExpandRowLimitClauseFunc;

    interface NameAndTypeDeclaration extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        Colon: Kusto.Language.Syntax.SyntaxToken | null;
        Type: Kusto.Language.Syntax.TypeExpression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface NameAndTypeDeclarationFunc extends Function {
        prototype: NameAndTypeDeclaration;
    }
    var NameAndTypeDeclaration: NameAndTypeDeclarationFunc;

    interface PartitionOperand extends Kusto.Language.Syntax.Expression {
    }
    interface PartitionOperandFunc extends Function {
        prototype: PartitionOperand;
    }
    var PartitionOperand: PartitionOperandFunc;

    /**
     * A node in the Kusto syntax that represents a name declaration.
     *
     * @public
     * @class Kusto.Language.Syntax.NameDeclaration
     * @augments Kusto.Language.Syntax.Expression
     */
    interface NameDeclaration extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The table name
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.NameDeclaration
         * @function Name
         * @type Kusto.Language.Syntax.Name
         */
        Name: Kusto.Language.Syntax.Name | null;
        ChildCount: number;
        SimpleName: string | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface NameDeclarationFunc extends Function {
        prototype: NameDeclaration;
        $ctor1: {
            new (nameToken: Kusto.Language.Syntax.SyntaxToken | null, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): NameDeclaration
        };
    }
    var NameDeclaration: NameDeclarationFunc;

    interface NameEqualsClause extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface NameEqualsClauseFunc extends Function {
        prototype: NameEqualsClause;
    }
    var NameEqualsClause: NameEqualsClauseFunc;

    /**
     * A node in the Kusto syntax that represents a name reference.
     *
     * @public
     * @class Kusto.Language.Syntax.NameReference
     * @augments Kusto.Language.Syntax.Expression
     */
    interface NameReference extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The table name
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.NameReference
         * @function Name
         * @type Kusto.Language.Syntax.Name
         */
        Name: Kusto.Language.Syntax.Name | null;
        Match: Kusto.Language.Symbols.SymbolMatch;
        ChildCount: number;
        SimpleName: string | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface NameReferenceFunc extends Function {
        prototype: NameReference;
        $ctor1: {
            new (name: Kusto.Language.Syntax.Name | null, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): NameReference
        };
        $ctor2: {
            new (nameToken: Kusto.Language.Syntax.SyntaxToken | null, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): NameReference
        };
    }
    var NameReference: NameReferenceFunc;

    interface NameReferenceList extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Names: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NameReference>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface NameReferenceListFunc extends Function {
        prototype: NameReferenceList;
    }
    var NameReferenceList: NameReferenceListFunc;

    interface OptionValueClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Equal: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface OptionValueClauseFunc extends Function {
        prototype: OptionValueClause;
    }
    var OptionValueClause: OptionValueClauseFunc;

    interface OrderedExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Expression: Kusto.Language.Syntax.Expression | null;
        Ordering: Kusto.Language.Syntax.OrderingClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface OrderedExpressionFunc extends Function {
        prototype: OrderedExpression;
    }
    var OrderedExpression: OrderedExpressionFunc;

    interface PackExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        PackKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        AsteriskToken: Kusto.Language.Syntax.SyntaxToken | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PackExpressionFunc extends Function {
        prototype: PackExpression;
    }
    var PackExpression: PackExpressionFunc;

    /**
     * A node in the kusto syntax that represents a parenthesized expression.
     *
     * @public
     * @class Kusto.Language.Syntax.ParenthesizedExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface ParenthesizedExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The open parenthesis token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ParenthesizedExpression
         * @function OpenParen
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The parenthesized expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ParenthesizedExpression
         * @function Expression
         * @type Kusto.Language.Syntax.Expression
         */
        Expression: Kusto.Language.Syntax.Expression | null;
        /**
         * The close parenthesis token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ParenthesizedExpression
         * @function CloseParen
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ParenthesizedExpressionFunc extends Function {
        prototype: ParenthesizedExpression;
    }
    var ParenthesizedExpression: ParenthesizedExpressionFunc;

    interface ParseKvWithClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Properties: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NamedParameter>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ParseKvWithClauseFunc extends Function {
        prototype: ParseKvWithClause;
    }
    var ParseKvWithClause: ParseKvWithClauseFunc;

    interface PathExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Expression: Kusto.Language.Syntax.Expression | null;
        Dot: Kusto.Language.Syntax.SyntaxToken | null;
        Selector: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PathExpressionFunc extends Function {
        prototype: PathExpression;
    }
    var PathExpression: PathExpressionFunc;

    interface MaterializeExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        MaterializeKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MaterializeExpressionFunc extends Function {
        prototype: MaterializeExpression;
    }
    var MaterializeExpression: MaterializeExpressionFunc;

    /**
     * A node in the Kusto syntax that represents the materilized-view-combine expression.
     *
     * @public
     * @class Kusto.Language.Syntax.MaterializedViewCombineExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface MaterializedViewCombineExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        MaterializedViewCombineKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ViewName: Kusto.Language.Syntax.MaterializedViewCombineNameClause | null;
        BaseClause: Kusto.Language.Syntax.MaterializedViewCombineClause | null;
        DeltaClause: Kusto.Language.Syntax.MaterializedViewCombineClause | null;
        AggregationsClause: Kusto.Language.Syntax.MaterializedViewCombineClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MaterializedViewCombineExpressionFunc extends Function {
        prototype: MaterializedViewCombineExpression;
    }
    var MaterializedViewCombineExpression: MaterializedViewCombineExpressionFunc;

    interface InlineExternalTablePathFormatClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        PathFormatKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        OptionalSeparatorLiteral: Kusto.Language.Syntax.LiteralExpression | null;
        PathExpressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.InlineExternalTablePathFormatPartitionColumnReference> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface InlineExternalTablePathFormatClauseFunc extends Function {
        prototype: InlineExternalTablePathFormatClause;
    }
    var InlineExternalTablePathFormatClause: InlineExternalTablePathFormatClauseFunc;

    interface InlineExternalTablePathFormatPartitionColumnReference extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        PartitionColumnExpression: Kusto.Language.Syntax.Expression | null;
        SeparatorLiteral: Kusto.Language.Syntax.LiteralExpression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface InlineExternalTablePathFormatPartitionColumnReferenceFunc extends Function {
        prototype: InlineExternalTablePathFormatPartitionColumnReference;
    }
    var InlineExternalTablePathFormatPartitionColumnReference: InlineExternalTablePathFormatPartitionColumnReferenceFunc;

    interface JoinConditionClause extends Kusto.Language.Syntax.Clause {
    }
    interface JoinConditionClauseFunc extends Function {
        prototype: JoinConditionClause;
    }
    var JoinConditionClause: JoinConditionClauseFunc;

    /**
     * A node in the Kusto syntax that represents a json expression
     *
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.JsonExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface JsonExpression extends Kusto.Language.Syntax.Expression {
    }
    interface JsonExpressionFunc extends Function {
        prototype: JsonExpression;
    }
    var JsonExpression: JsonExpressionFunc;

    interface LetStatement extends Kusto.Language.Syntax.Statement {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        LetKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        Equal: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface LetStatementFunc extends Function {
        prototype: LetStatement;
    }
    var LetStatement: LetStatementFunc;

    /**
     * A node in the kusto syntax that represents a literal expression.
     *
     * @public
     * @class Kusto.Language.Syntax.LiteralExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface LiteralExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The token with the literal value.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.LiteralExpression
         * @function Token
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Token: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        IsLiteral: boolean;
        LiteralValueInfo: Kusto.Language.Syntax.ValueInfo | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface LiteralExpressionFunc extends Function {
        prototype: LiteralExpression;
    }
    var LiteralExpression: LiteralExpressionFunc;

    interface MacroExpandScopeReferenceName extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        AsKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        EntityGroupReferenceName: Kusto.Language.Syntax.NameDeclaration | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MacroExpandScopeReferenceNameFunc extends Function {
        prototype: MacroExpandScopeReferenceName;
    }
    var MacroExpandScopeReferenceName: MacroExpandScopeReferenceNameFunc;

    interface PatternDeclaration extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NameAndTypeDeclaration>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        PathParameter: Kusto.Language.Syntax.PatternPathParameter | null;
        OpenBrace: Kusto.Language.Syntax.SyntaxToken | null;
        Patterns: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.PatternMatch> | null;
        CloseBrace: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PatternDeclarationFunc extends Function {
        prototype: PatternDeclaration;
    }
    var PatternDeclaration: PatternDeclarationFunc;

    interface MakeGraphWithImplicitIdClause extends Kusto.Language.Syntax.MakeGraphWithClause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithNodeIdKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeGraphWithImplicitIdClauseFunc extends Function {
        prototype: MakeGraphWithImplicitIdClause;
    }
    var MakeGraphWithImplicitIdClause: MakeGraphWithImplicitIdClauseFunc;

    interface MakeGraphWithTablesAndKeysClause extends Kusto.Language.Syntax.MakeGraphWithClause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        TablesAndKeys: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.MakeGraphTableAndKeyClause>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeGraphWithTablesAndKeysClauseFunc extends Function {
        prototype: MakeGraphWithTablesAndKeysClause;
    }
    var MakeGraphWithTablesAndKeysClause: MakeGraphWithTablesAndKeysClauseFunc;

    interface MakeSeriesByClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeSeriesByClauseFunc extends Function {
        prototype: MakeSeriesByClause;
    }
    var MakeSeriesByClause: MakeSeriesByClauseFunc;

    interface MakeSeriesExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Expression: Kusto.Language.Syntax.Expression | null;
        DefaultExpression: Kusto.Language.Syntax.DefaultExpressionClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeSeriesExpressionFunc extends Function {
        prototype: MakeSeriesExpression;
    }
    var MakeSeriesExpression: MakeSeriesExpressionFunc;

    interface MakeSeriesFromClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        FromKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeSeriesFromClauseFunc extends Function {
        prototype: MakeSeriesFromClause;
    }
    var MakeSeriesFromClause: MakeSeriesFromClauseFunc;

    interface MakeSeriesRangeClause extends Kusto.Language.Syntax.Clause {
    }
    interface MakeSeriesRangeClauseFunc extends Function {
        prototype: MakeSeriesRangeClause;
    }
    var MakeSeriesRangeClause: MakeSeriesRangeClauseFunc;

    interface MakeSeriesOnClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OnKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeSeriesOnClauseFunc extends Function {
        prototype: MakeSeriesOnClause;
    }
    var MakeSeriesOnClause: MakeSeriesOnClauseFunc;

    interface MakeSeriesStepClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        StepKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeSeriesStepClauseFunc extends Function {
        prototype: MakeSeriesStepClause;
    }
    var MakeSeriesStepClause: MakeSeriesStepClauseFunc;

    interface MakeSeriesToClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ToKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeSeriesToClauseFunc extends Function {
        prototype: MakeSeriesToClause;
    }
    var MakeSeriesToClause: MakeSeriesToClauseFunc;

    interface InlineExternalTableDataFormatClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DataFormatKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        Value: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface InlineExternalTableDataFormatClauseFunc extends Function {
        prototype: InlineExternalTableDataFormatClause;
    }
    var InlineExternalTableDataFormatClause: InlineExternalTableDataFormatClauseFunc;

    interface AsOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        AsKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface AsOperatorFunc extends Function {
        prototype: AsOperator;
    }
    var AsOperator: AsOperatorFunc;

    /**
     * Represents the associated info of a literal found in syntax.
     *
     * @public
     * @class Kusto.Language.Syntax.ValueInfo
     */
    interface ValueInfo {
        /**
         * The value as a CLR value.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ValueInfo
         * @function Value
         * @type System.Object
         */
        Value: any | null;
        /**
         * The text of the value.
         This is the unescaped value of a string literal or the raw interior text of other literals.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ValueInfo
         * @function ValueText
         * @type string
         */
        ValueText: string | null;
        /**
         * The text of the value as specified in the expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ValueInfo
         * @function RawText
         * @type string
         */
        RawText: string | null;
    }
    interface ValueInfoFunc extends Function {
        prototype: ValueInfo;
    }
    var ValueInfo: ValueInfoFunc;

    interface BadCommand extends Kusto.Language.Syntax.Command {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DotToken: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface BadCommandFunc extends Function {
        prototype: BadCommand;
    }
    var BadCommand: BadCommandFunc;

    interface ProjectByNamesOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ProjectByNamesKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ProjectByNamesOperatorFunc extends Function {
        prototype: ProjectByNamesOperator;
    }
    var ProjectByNamesOperator: ProjectByNamesOperatorFunc;

    interface ProjectAwayOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ProjectAwayKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ProjectAwayOperatorFunc extends Function {
        prototype: ProjectAwayOperator;
    }
    var ProjectAwayOperator: ProjectAwayOperatorFunc;

    interface PrintOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        PrintKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PrintOperatorFunc extends Function {
        prototype: PrintOperator;
    }
    var PrintOperator: PrintOperatorFunc;

    interface PrimitiveTypeExpression extends Kusto.Language.Syntax.TypeExpression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Type: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PrimitiveTypeExpressionFunc extends Function {
        prototype: PrimitiveTypeExpression;
    }
    var PrimitiveTypeExpression: PrimitiveTypeExpressionFunc;

    interface PartitionSubquery extends Kusto.Language.Syntax.PartitionOperand {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Subquery: Kusto.Language.Syntax.Expression | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PartitionSubqueryFunc extends Function {
        prototype: PartitionSubquery;
    }
    var PartitionSubquery: PartitionSubqueryFunc;

    interface PartitionQuery extends Kusto.Language.Syntax.PartitionOperand {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenBrace: Kusto.Language.Syntax.SyntaxToken | null;
        Query: Kusto.Language.Syntax.Expression | null;
        CloseBrace: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PartitionQueryFunc extends Function {
        prototype: PartitionQuery;
    }
    var PartitionQuery: PartitionQueryFunc;

    interface PartitionOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        PartitionKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ByExpression: Kusto.Language.Syntax.Expression | null;
        Scope: Kusto.Language.Syntax.PartitionScope | null;
        Operand: Kusto.Language.Syntax.PartitionOperand | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PartitionOperatorFunc extends Function {
        prototype: PartitionOperator;
    }
    var PartitionOperator: PartitionOperatorFunc;

    interface PartitionByOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        PartitionByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Entity: Kusto.Language.Syntax.Expression | null;
        IdClause: Kusto.Language.Syntax.PartitionByIdClause | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Subquery: Kusto.Language.Syntax.Expression | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PartitionByOperatorFunc extends Function {
        prototype: PartitionByOperator;
    }
    var PartitionByOperator: PartitionByOperatorFunc;

    interface PartialCommand extends Kusto.Language.Syntax.Command {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        CommandKinds: System.Collections.Generic.IReadOnlyList$1<string> | null;
        DotToken: Kusto.Language.Syntax.SyntaxToken | null;
        Parts: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SyntaxElement> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PartialCommandFunc extends Function {
        prototype: PartialCommand;
    }
    var PartialCommand: PartialCommandFunc;

    interface ParseWhereOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ParseKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Patterns: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SyntaxNode> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ParseWhereOperatorFunc extends Function {
        prototype: ParseWhereOperator;
    }
    var ParseWhereOperator: ParseWhereOperatorFunc;

    interface ParseOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ParseKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Patterns: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SyntaxNode> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ParseOperatorFunc extends Function {
        prototype: ParseOperator;
    }
    var ParseOperator: ParseOperatorFunc;

    interface ParseKvOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ParseKvKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        AsKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Keys: Kusto.Language.Syntax.RowSchema | null;
        WithClause: Kusto.Language.Syntax.ParseKvWithClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ParseKvOperatorFunc extends Function {
        prototype: ParseKvOperator;
    }
    var ParseKvOperator: ParseKvOperatorFunc;

    interface MvExpandOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        MvExpandKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.MvExpandExpression>> | null;
        RowLimitClause: Kusto.Language.Syntax.MvExpandRowLimitClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MvExpandOperatorFunc extends Function {
        prototype: MvExpandOperator;
    }
    var MvExpandOperator: MvExpandOperatorFunc;

    interface MvApplyOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        MvApplyKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.MvApplyExpression>> | null;
        RowLimitClause: Kusto.Language.Syntax.MvApplyRowLimitClause | null;
        ContextIdClause: Kusto.Language.Syntax.MvApplyContextIdClause | null;
        OnKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Subquery: Kusto.Language.Syntax.MvApplySubqueryExpression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MvApplyOperatorFunc extends Function {
        prototype: MvApplyOperator;
    }
    var MvApplyOperator: MvApplyOperatorFunc;

    interface MakeSeriesOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        MakeSeriesKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Aggregates: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.MakeSeriesExpression>> | null;
        OnClause: Kusto.Language.Syntax.MakeSeriesOnClause | null;
        RangeClause: Kusto.Language.Syntax.MakeSeriesRangeClause | null;
        ByClause: Kusto.Language.Syntax.MakeSeriesByClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeSeriesOperatorFunc extends Function {
        prototype: MakeSeriesOperator;
    }
    var MakeSeriesOperator: MakeSeriesOperatorFunc;

    interface ProjectKeepOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ProjectKeepKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ProjectKeepOperatorFunc extends Function {
        prototype: ProjectKeepOperator;
    }
    var ProjectKeepOperator: ProjectKeepOperatorFunc;

    interface ProjectOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ProjectKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ProjectOperatorFunc extends Function {
        prototype: ProjectOperator;
    }
    var ProjectOperator: ProjectOperatorFunc;

    interface ProjectRenameOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ProjectRenameKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ProjectRenameOperatorFunc extends Function {
        prototype: ProjectRenameOperator;
    }
    var ProjectRenameOperator: ProjectRenameOperatorFunc;

    interface ProjectReorderOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ProjectReorderKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ProjectReorderOperatorFunc extends Function {
        prototype: ProjectReorderOperator;
    }
    var ProjectReorderOperator: ProjectReorderOperatorFunc;

    interface TopOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        TopKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ByExpression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface TopOperatorFunc extends Function {
        prototype: TopOperator;
    }
    var TopOperator: TopOperatorFunc;

    interface TopNestedOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Clauses: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.TopNestedClause>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface TopNestedOperatorFunc extends Function {
        prototype: TopNestedOperator;
    }
    var TopNestedOperator: TopNestedOperatorFunc;

    interface TopHittersOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        TopHittersKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        OfKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OfExpression: Kusto.Language.Syntax.Expression | null;
        ByClause: Kusto.Language.Syntax.TopHittersByClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface TopHittersOperatorFunc extends Function {
        prototype: TopHittersOperator;
    }
    var TopHittersOperator: TopHittersOperatorFunc;

    interface TakeOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Keyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface TakeOperatorFunc extends Function {
        prototype: TakeOperator;
    }
    var TakeOperator: TakeOperatorFunc;

    interface SummarizeOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        SummarizeKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Aggregates: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ByClause: Kusto.Language.Syntax.SummarizeByClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SummarizeOperatorFunc extends Function {
        prototype: SummarizeOperator;
    }
    var SummarizeOperator: SummarizeOperatorFunc;

    interface SortOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Keyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SortOperatorFunc extends Function {
        prototype: SortOperator;
    }
    var SortOperator: SortOperatorFunc;

    /**
     * A node in the kusto syntax that represents a named expression.
     *
     * @public
     * @class Kusto.Language.Syntax.SimpleNamedExpression
     * @augments Kusto.Language.Syntax.NamedExpression
     */
    interface SimpleNamedExpression extends Kusto.Language.Syntax.NamedExpression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The name of the expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.SimpleNamedExpression
         * @function Name
         * @type Kusto.Language.Syntax.NameDeclaration
         */
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        /**
         * The equal token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.SimpleNamedExpression
         * @function EqualToken
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The named expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.SimpleNamedExpression
         * @function Expression
         * @type Kusto.Language.Syntax.Expression
         */
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SimpleNamedExpressionFunc extends Function {
        prototype: SimpleNamedExpression;
    }
    var SimpleNamedExpression: SimpleNamedExpressionFunc;

    interface MakeSeriesInRangeClause extends Kusto.Language.Syntax.MakeSeriesRangeClause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        InKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        RangeKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Arguments: Kusto.Language.Syntax.ExpressionList | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeSeriesInRangeClauseFunc extends Function {
        prototype: MakeSeriesInRangeClause;
    }
    var MakeSeriesInRangeClause: MakeSeriesInRangeClauseFunc;

    interface SerializeOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        SerializeKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SerializeOperatorFunc extends Function {
        prototype: SerializeOperator;
    }
    var SerializeOperator: SerializeOperatorFunc;

    interface SchemaTypeExpression extends Kusto.Language.Syntax.TypeExpression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Columns: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SchemaTypeExpressionFunc extends Function {
        prototype: SchemaTypeExpression;
    }
    var SchemaTypeExpression: SchemaTypeExpressionFunc;

    interface ScanOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ScanKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        OrderByClause: Kusto.Language.Syntax.ScanOrderByClause | null;
        PartitionByClause: Kusto.Language.Syntax.ScanPartitionByClause | null;
        DeclareClause: Kusto.Language.Syntax.ScanDeclareClause | null;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParenToken: Kusto.Language.Syntax.SyntaxToken | null;
        Steps: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.ScanStep> | null;
        CloseParenToken: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ScanOperatorFunc extends Function {
        prototype: ScanOperator;
    }
    var ScanOperator: ScanOperatorFunc;

    interface SampleOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        SampleKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SampleOperatorFunc extends Function {
        prototype: SampleOperator;
    }
    var SampleOperator: SampleOperatorFunc;

    interface SampleDistinctOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        SampleDistinctKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        OfKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OfExpression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SampleDistinctOperatorFunc extends Function {
        prototype: SampleDistinctOperator;
    }
    var SampleDistinctOperator: SampleDistinctOperatorFunc;

    interface RenderOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        RenderKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ChartType: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        WithClause: Kusto.Language.Syntax.RenderWithClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface RenderOperatorFunc extends Function {
        prototype: RenderOperator;
    }
    var RenderOperator: RenderOperatorFunc;

    interface ReduceByOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ReduceKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        With: Kusto.Language.Syntax.ReduceByWithClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ReduceByOperatorFunc extends Function {
        prototype: ReduceByOperator;
    }
    var ReduceByOperator: ReduceByOperatorFunc;

    interface RangeOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        RangeToken: Kusto.Language.Syntax.SyntaxToken | null;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        FromToken: Kusto.Language.Syntax.SyntaxToken | null;
        From: Kusto.Language.Syntax.Expression | null;
        ToToken: Kusto.Language.Syntax.SyntaxToken | null;
        To: Kusto.Language.Syntax.Expression | null;
        StepToken: Kusto.Language.Syntax.SyntaxToken | null;
        Step: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface RangeOperatorFunc extends Function {
        prototype: RangeOperator;
    }
    var RangeOperator: RangeOperatorFunc;

    interface SearchOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        SearchKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        DataScope: Kusto.Language.Syntax.DataScopeClause | null;
        InClause: Kusto.Language.Syntax.FindInClause | null;
        Condition: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SearchOperatorFunc extends Function {
        prototype: SearchOperator;
    }
    var SearchOperator: SearchOperatorFunc;

    interface AssertSchemaOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        AssertSchemaKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Schema: Kusto.Language.Syntax.RowSchema | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface AssertSchemaOperatorFunc extends Function {
        prototype: AssertSchemaOperator;
    }
    var AssertSchemaOperator: AssertSchemaOperatorFunc;

    interface MakeSeriesFromToStepClause extends Kusto.Language.Syntax.MakeSeriesRangeClause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        MakeSeriesFromClause: Kusto.Language.Syntax.MakeSeriesFromClause | null;
        MakeSeriesToClause: Kusto.Language.Syntax.MakeSeriesToClause | null;
        MakeSeriesStepClause: Kusto.Language.Syntax.MakeSeriesStepClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeSeriesFromToStepClauseFunc extends Function {
        prototype: MakeSeriesFromToStepClause;
    }
    var MakeSeriesFromToStepClause: MakeSeriesFromToStepClauseFunc;

    interface MacroExpandOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        MacroExpandKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        EntityGroup: Kusto.Language.Syntax.Expression | null;
        ScopeReferenceName: Kusto.Language.Syntax.MacroExpandScopeReferenceName | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        StatementList: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Statement>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MacroExpandOperatorFunc extends Function {
        prototype: MacroExpandOperator;
    }
    var MacroExpandOperator: MacroExpandOperatorFunc;

    interface FacetWithOperatorClause extends Kusto.Language.Syntax.FacetWithClause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Operator: Kusto.Language.Syntax.QueryOperator | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FacetWithOperatorClauseFunc extends Function {
        prototype: FacetWithOperatorClause;
    }
    var FacetWithOperatorClause: FacetWithOperatorClauseFunc;

    interface FacetWithExpressionClause extends Kusto.Language.Syntax.FacetWithClause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FacetWithExpressionClauseFunc extends Function {
        prototype: FacetWithExpressionClause;
    }
    var FacetWithExpressionClause: FacetWithExpressionClauseFunc;

    interface FacetOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        FacetKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        WithClause: Kusto.Language.Syntax.FacetWithClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FacetOperatorFunc extends Function {
        prototype: FacetOperator;
    }
    var FacetOperator: FacetOperatorFunc;

    interface ExtendOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ExtendKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ExtendOperatorFunc extends Function {
        prototype: ExtendOperator;
    }
    var ExtendOperator: ExtendOperatorFunc;

    interface ExecuteAndCacheOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ExecuteAndCacheKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ExecuteAndCacheOperatorFunc extends Function {
        prototype: ExecuteAndCacheOperator;
    }
    var ExecuteAndCacheOperator: ExecuteAndCacheOperatorFunc;

    interface EvaluateOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        EvaluateKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        FunctionCall: Kusto.Language.Syntax.FunctionCallExpression | null;
        Schema: Kusto.Language.Syntax.EvaluateSchemaClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface EvaluateOperatorFunc extends Function {
        prototype: EvaluateOperator;
    }
    var EvaluateOperator: EvaluateOperatorFunc;

    interface DistinctOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DistinctKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface DistinctOperatorFunc extends Function {
        prototype: DistinctOperator;
    }
    var DistinctOperator: DistinctOperatorFunc;

    interface CustomCommand extends Kusto.Language.Syntax.Command {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        CommandKind: string | null;
        DotToken: Kusto.Language.Syntax.SyntaxToken | null;
        Custom: Kusto.Language.Syntax.SyntaxElement | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface CustomCommandFunc extends Function {
        prototype: CustomCommand;
    }
    var CustomCommand: CustomCommandFunc;

    interface CountOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        CountKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        AsIdentifier: Kusto.Language.Syntax.CountAsIdentifierClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface CountOperatorFunc extends Function {
        prototype: CountOperator;
    }
    var CountOperator: CountOperatorFunc;

    interface ConsumeOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ConsumeKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ConsumeOperatorFunc extends Function {
        prototype: ConsumeOperator;
    }
    var ConsumeOperator: ConsumeOperatorFunc;

    /**
     * A node in the kusto syntax that represents a compound named expression.
     *
     * @public
     * @class Kusto.Language.Syntax.CompoundNamedExpression
     * @augments Kusto.Language.Syntax.NamedExpression
     */
    interface CompoundNamedExpression extends Kusto.Language.Syntax.NamedExpression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The set of names or keywords.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.CompoundNamedExpression
         * @function Names
         * @type Kusto.Language.Syntax.RenameList
         */
        Names: Kusto.Language.Syntax.RenameList | null;
        /**
         * The equal token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.CompoundNamedExpression
         * @function EqualToken
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The named expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.CompoundNamedExpression
         * @function Expression
         * @type Kusto.Language.Syntax.Expression
         */
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface CompoundNamedExpressionFunc extends Function {
        prototype: CompoundNamedExpression;
    }
    var CompoundNamedExpression: CompoundNamedExpressionFunc;

    interface CommandWithValueClause extends Kusto.Language.Syntax.CommandWithClause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Value: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface CommandWithValueClauseFunc extends Function {
        prototype: CommandWithValueClause;
    }
    var CommandWithValueClause: CommandWithValueClauseFunc;

    interface CommandWithPropertyListClause extends Kusto.Language.Syntax.CommandWithClause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Properties: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NamedParameter>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface CommandWithPropertyListClauseFunc extends Function {
        prototype: CommandWithPropertyListClause;
    }
    var CommandWithPropertyListClause: CommandWithPropertyListClauseFunc;

    interface CommandAndSkippedTokens extends Kusto.Language.Syntax.Command {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Command: Kusto.Language.Syntax.Command | null;
        SkippedTokens: Kusto.Language.Syntax.SkippedTokens | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface CommandAndSkippedTokensFunc extends Function {
        prototype: CommandAndSkippedTokens;
    }
    var CommandAndSkippedTokens: CommandAndSkippedTokensFunc;

    interface BadQueryOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Keyword: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface BadQueryOperatorFunc extends Function {
        prototype: BadQueryOperator;
    }
    var BadQueryOperator: BadQueryOperatorFunc;

    interface FilterOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Keyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Condition: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FilterOperatorFunc extends Function {
        prototype: FilterOperator;
    }
    var FilterOperator: FilterOperatorFunc;

    interface FindOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        FindKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        DataScope: Kusto.Language.Syntax.DataScopeClause | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        InClause: Kusto.Language.Syntax.FindInClause | null;
        WhereKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Condition: Kusto.Language.Syntax.Expression | null;
        Project: Kusto.Language.Syntax.FindProjectClause | null;
        ProjectAway: Kusto.Language.Syntax.FindProjectClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FindOperatorFunc extends Function {
        prototype: FindOperator;
    }
    var FindOperator: FindOperatorFunc;

    interface ForkOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ForkKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.ForkExpression> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ForkOperatorFunc extends Function {
        prototype: ForkOperator;
    }
    var ForkOperator: ForkOperatorFunc;

    interface GetSchemaOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        GetSchemaKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        KindParameter: Kusto.Language.Syntax.NamedParameter | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GetSchemaOperatorFunc extends Function {
        prototype: GetSchemaOperator;
    }
    var GetSchemaOperator: GetSchemaOperatorFunc;

    interface LookupOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        LookupKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        LookupClause: Kusto.Language.Syntax.JoinConditionClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface LookupOperatorFunc extends Function {
        prototype: LookupOperator;
    }
    var LookupOperator: LookupOperatorFunc;

    /**
     * A node in the kusto syntax that represents a JSON object expression.
     *
     * @public
     * @class Kusto.Language.Syntax.JsonObjectExpression
     * @augments Kusto.Language.Syntax.JsonExpression
     */
    interface JsonObjectExpression extends Kusto.Language.Syntax.JsonExpression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The open brace token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.JsonObjectExpression
         * @function OpenBrace
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        OpenBrace: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The list of name value pairs.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.JsonObjectExpression
         * @function Pairs
         * @type Kusto.Language.Syntax.SyntaxList$1
         */
        Pairs: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.JsonPair>> | null;
        /**
         * The close brace token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.JsonObjectExpression
         * @function CloseBrace
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        CloseBrace: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface JsonObjectExpressionFunc extends Function {
        prototype: JsonObjectExpression;
    }
    var JsonObjectExpression: JsonObjectExpressionFunc;

    /**
     * A node in the kusto syntax that represents a JSON array expression.
     *
     * @public
     * @class Kusto.Language.Syntax.JsonArrayExpression
     * @augments Kusto.Language.Syntax.JsonExpression
     */
    interface JsonArrayExpression extends Kusto.Language.Syntax.JsonExpression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The open bracket token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.JsonArrayExpression
         * @function OpenBracket
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        OpenBracket: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The list of values.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.JsonArrayExpression
         * @function Values
         * @type Kusto.Language.Syntax.SyntaxList$1
         */
        Values: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        /**
         * The close bracket token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.JsonArrayExpression
         * @function CloseBracket
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        CloseBracket: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface JsonArrayExpressionFunc extends Function {
        prototype: JsonArrayExpression;
    }
    var JsonArrayExpression: JsonArrayExpressionFunc;

    interface JoinWhereClause extends Kusto.Language.Syntax.JoinConditionClause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WhereKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface JoinWhereClauseFunc extends Function {
        prototype: JoinWhereClause;
    }
    var JoinWhereClause: JoinWhereClauseFunc;

    interface JoinOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        JoinKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ConditionClause: Kusto.Language.Syntax.JoinConditionClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface JoinOperatorFunc extends Function {
        prototype: JoinOperator;
    }
    var JoinOperator: JoinOperatorFunc;

    interface JoinOnClause extends Kusto.Language.Syntax.JoinConditionClause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OnKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface JoinOnClauseFunc extends Function {
        prototype: JoinOnClause;
    }
    var JoinOnClause: JoinOnClauseFunc;

    interface InvokeOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        InvokeKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Function: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface InvokeOperatorFunc extends Function {
        prototype: InvokeOperator;
    }
    var InvokeOperator: InvokeOperatorFunc;

    interface MakeGraphOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        MakeGraphKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        SourceColumn: Kusto.Language.Syntax.NameReference | null;
        DirectionToken: Kusto.Language.Syntax.SyntaxToken | null;
        TargetColumn: Kusto.Language.Syntax.NameReference | null;
        WithClause: Kusto.Language.Syntax.MakeGraphWithClause | null;
        PartitionedByClause: Kusto.Language.Syntax.MakeGraphPartitionedByClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeGraphOperatorFunc extends Function {
        prototype: MakeGraphOperator;
    }
    var MakeGraphOperator: MakeGraphOperatorFunc;

    /**
     * A node in the kusto syntax that represents an inline external table expression.
     *
     * @public
     * @class Kusto.Language.Syntax.InlineExternalTableExpression
     * @augments Kusto.Language.Syntax.QueryOperator
     */
    interface InlineExternalTableExpression extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        InlineExternalTableKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Schema: Kusto.Language.Syntax.RowSchema | null;
        KindParameter: Kusto.Language.Syntax.InlineExternalTableKindClause | null;
        PartitionClause: Kusto.Language.Syntax.InlineExternalTablePartitionClause | null;
        PathFormat: Kusto.Language.Syntax.InlineExternalTablePathFormatClause | null;
        DataFormatParameter: Kusto.Language.Syntax.InlineExternalTableDataFormatClause | null;
        ConnectionStrings: Kusto.Language.Syntax.InlineExternalTableConnectionStringsClause | null;
        WithClause: Kusto.Language.Syntax.ExternalDataWithClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface InlineExternalTableExpressionFunc extends Function {
        prototype: InlineExternalTableExpression;
    }
    var InlineExternalTableExpression: InlineExternalTableExpressionFunc;

    /**
     * A node in the kusto syntax that represents an in expression.
     *
     * @public
     * @class Kusto.Language.Syntax.InExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface InExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The left side expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.InExpression
         * @function Left
         * @type Kusto.Language.Syntax.Expression
         */
        Left: Kusto.Language.Syntax.Expression | null;
        /**
         * The in or !in keyword.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.InExpression
         * @function Operator
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Operator: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The list of expressions.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.InExpression
         * @function Right
         * @type Kusto.Language.Syntax.ExpressionList
         */
        Right: Kusto.Language.Syntax.ExpressionList | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface InExpressionFunc extends Function {
        prototype: InExpression;
    }
    var InExpression: InExpressionFunc;

    interface GraphWhereEdgesOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        GraphWhereEdgesKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Condition: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphWhereEdgesOperatorFunc extends Function {
        prototype: GraphWhereEdgesOperator;
    }
    var GraphWhereEdgesOperator: GraphWhereEdgesOperatorFunc;

    interface GraphToTableOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        GraphToTableKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OutputClause: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.GraphToTableOutputClause>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphToTableOperatorFunc extends Function {
        prototype: GraphToTableOperator;
    }
    var GraphToTableOperator: GraphToTableOperatorFunc;

    interface GraphShortestPathsOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        GraphShortestPathsKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Patterns: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.GraphMatchPattern>> | null;
        WhereClause: Kusto.Language.Syntax.WhereClause | null;
        ProjectClause: Kusto.Language.Syntax.ProjectClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphShortestPathsOperatorFunc extends Function {
        prototype: GraphShortestPathsOperator;
    }
    var GraphShortestPathsOperator: GraphShortestPathsOperatorFunc;

    interface GraphMatchPattern extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        PatternElements: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.GraphMatchPatternNotation> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphMatchPatternFunc extends Function {
        prototype: GraphMatchPattern;
    }
    var GraphMatchPattern: GraphMatchPatternFunc;

    interface GraphMatchOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        GraphMatchKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Patterns: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.GraphMatchPattern>> | null;
        WhereClause: Kusto.Language.Syntax.WhereClause | null;
        ProjectClause: Kusto.Language.Syntax.ProjectClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphMatchOperatorFunc extends Function {
        prototype: GraphMatchOperator;
    }
    var GraphMatchOperator: GraphMatchOperatorFunc;

    interface GraphMarkComponentsOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        GraphMarkComponentsKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphMarkComponentsOperatorFunc extends Function {
        prototype: GraphMarkComponentsOperator;
    }
    var GraphMarkComponentsOperator: GraphMarkComponentsOperatorFunc;

    interface GraphWhereNodesOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        GraphWhereNodesKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Condition: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphWhereNodesOperatorFunc extends Function {
        prototype: GraphWhereNodesOperator;
    }
    var GraphWhereNodesOperator: GraphWhereNodesOperatorFunc;

    /**
     * A node in the kusto syntax that represents a has_any expression.
     *
     * @public
     * @class Kusto.Language.Syntax.HasAnyExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface HasAnyExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The left side expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.HasAnyExpression
         * @function Left
         * @type Kusto.Language.Syntax.Expression
         */
        Left: Kusto.Language.Syntax.Expression | null;
        /**
         * The has_any keyword.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.HasAnyExpression
         * @function Operator
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Operator: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The list of expressions.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.HasAnyExpression
         * @function Right
         * @type Kusto.Language.Syntax.ExpressionList
         */
        Right: Kusto.Language.Syntax.ExpressionList | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface HasAnyExpressionFunc extends Function {
        prototype: HasAnyExpression;
    }
    var HasAnyExpression: HasAnyExpressionFunc;

    interface GraphToTableOutputClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        EntityKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        AsClause: Kusto.Language.Syntax.GraphToTableAsClause | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphToTableOutputClauseFunc extends Function {
        prototype: GraphToTableOutputClause;
    }
    var GraphToTableOutputClause: GraphToTableOutputClauseFunc;

    /**
     * A node in the kusto syntax that represents a parenthesized list of expressions.
     *
     * @public
     * @class Kusto.Language.Syntax.ExpressionList
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface ExpressionList extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The open parenthesis token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ExpressionList
         * @function OpenParen
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The list of expressions.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ExpressionList
         * @function Expressions
         * @type Kusto.Language.Syntax.SyntaxList$1
         */
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        /**
         * The close parenthesis token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ExpressionList
         * @function CloseParen
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ExpressionListFunc extends Function {
        prototype: ExpressionList;
    }
    var ExpressionList: ExpressionListFunc;

    interface FunctionBody extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenBrace: Kusto.Language.Syntax.SyntaxToken | null;
        Statements: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Statement>> | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        Semicolon: Kusto.Language.Syntax.SyntaxToken | null;
        CloseBrace: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FunctionBodyFunc extends Function {
        prototype: FunctionBody;
    }
    var FunctionBody: FunctionBodyFunc;

    interface FunctionParameter extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        NameAndType: Kusto.Language.Syntax.NameAndTypeDeclaration | null;
        DefaultValue: Kusto.Language.Syntax.DefaultValueDeclaration | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FunctionParameterFunc extends Function {
        prototype: FunctionParameter;
    }
    var FunctionParameter: FunctionParameterFunc;

    interface FunctionParameters extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.FunctionParameter>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FunctionParametersFunc extends Function {
        prototype: FunctionParameters;
    }
    var FunctionParameters: FunctionParametersFunc;

    interface GraphMatchPatternNotation extends Kusto.Language.Syntax.SyntaxNode {
    }
    interface GraphMatchPatternNotationFunc extends Function {
        prototype: GraphMatchPatternNotation;
    }
    var GraphMatchPatternNotation: GraphMatchPatternNotationFunc;

    interface GraphMatchPatternEdgeRange extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Asterisk: Kusto.Language.Syntax.SyntaxToken | null;
        RangeStart: Kusto.Language.Syntax.Expression | null;
        DotDotToken: Kusto.Language.Syntax.SyntaxToken | null;
        RangeEnd: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphMatchPatternEdgeRangeFunc extends Function {
        prototype: GraphMatchPatternEdgeRange;
    }
    var GraphMatchPatternEdgeRange: GraphMatchPatternEdgeRangeFunc;

    /**
     * A clause that specifies list of connection strings for inline external table.
     *
     * @public
     * @class Kusto.Language.Syntax.InlineExternalTableConnectionStringsClause
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface InlineExternalTableConnectionStringsClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        ConnectionStrings: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface InlineExternalTableConnectionStringsClauseFunc extends Function {
        prototype: InlineExternalTableConnectionStringsClause;
    }
    var InlineExternalTableConnectionStringsClause: InlineExternalTableConnectionStringsClauseFunc;

    /**
     * A clause that specifies the partitioning for inline external table.
     *
     * @public
     * @class Kusto.Language.Syntax.InlineExternalTablePartitionClause
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface InlineExternalTablePartitionClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        PartitionKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        LeadingComma: Kusto.Language.Syntax.SyntaxToken | null;
        PartitionColumns: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.PartitionColumnDeclaration>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface InlineExternalTablePartitionClauseFunc extends Function {
        prototype: InlineExternalTablePartitionClause;
    }
    var InlineExternalTablePartitionClause: InlineExternalTablePartitionClauseFunc;

    /**
     * A node in the kusto syntax that represents a JSON scalar expression.
     *
     * @public
     * @class Kusto.Language.Syntax.JsonPair
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface JsonPair extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The token with the name of the JSON element.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.JsonPair
         * @function Name
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Name: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The colon token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.JsonPair
         * @function Colon
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Colon: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The value of the JSON element.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.JsonPair
         * @function Value
         * @type Kusto.Language.Syntax.Expression
         */
        Value: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface JsonPairFunc extends Function {
        prototype: JsonPair;
    }
    var JsonPair: JsonPairFunc;

    interface MakeGraphPartitionedByClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        PartitionedByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Entity: Kusto.Language.Syntax.NameReference | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Subquery: Kusto.Language.Syntax.Expression | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeGraphPartitionedByClauseFunc extends Function {
        prototype: MakeGraphPartitionedByClause;
    }
    var MakeGraphPartitionedByClause: MakeGraphPartitionedByClauseFunc;

    /**
     * A node in the kusto syntax that represents a has_all expression.
     *
     * @public
     * @class Kusto.Language.Syntax.HasAllExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface HasAllExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The left side expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.HasAllExpression
         * @function Left
         * @type Kusto.Language.Syntax.Expression
         */
        Left: Kusto.Language.Syntax.Expression | null;
        /**
         * The has_all keyword.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.HasAllExpression
         * @function Operator
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Operator: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The list of expressions.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.HasAllExpression
         * @function Right
         * @type Kusto.Language.Syntax.ExpressionList
         */
        Right: Kusto.Language.Syntax.ExpressionList | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface HasAllExpressionFunc extends Function {
        prototype: HasAllExpression;
    }
    var HasAllExpression: HasAllExpressionFunc;

    /**
     * A node in the kusto syntax that represents a parenthesized pair of expressions.
     *
     * @public
     * @class Kusto.Language.Syntax.ExpressionCouple
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface ExpressionCouple extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The open parenthesis token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ExpressionCouple
         * @function OpenParen
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The first expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ExpressionCouple
         * @function First
         * @type Kusto.Language.Syntax.Expression
         */
        First: Kusto.Language.Syntax.Expression | null;
        /**
         * The .. token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ExpressionCouple
         * @function DotDot
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        DotDot: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The second expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ExpressionCouple
         * @function Second
         * @type Kusto.Language.Syntax.Expression
         */
        Second: Kusto.Language.Syntax.Expression | null;
        /**
         * The close parenthesis token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.ExpressionCouple
         * @function CloseParen
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ExpressionCoupleFunc extends Function {
        prototype: ExpressionCouple;
    }
    var ExpressionCouple: ExpressionCoupleFunc;

    interface MakeGraphWithClause extends Kusto.Language.Syntax.SyntaxNode {
    }
    interface MakeGraphWithClauseFunc extends Function {
        prototype: MakeGraphWithClause;
    }
    var MakeGraphWithClause: MakeGraphWithClauseFunc;

    /**
     * A node in the Kusto syntax that represents the materilized-view-combine view name part.
     *
     * @public
     * @class Kusto.Language.Syntax.MaterializedViewCombineNameClause
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface MaterializedViewCombineNameClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Value: Kusto.Language.Syntax.Expression | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MaterializedViewCombineNameClauseFunc extends Function {
        prototype: MaterializedViewCombineNameClause;
    }
    var MaterializedViewCombineNameClause: MaterializedViewCombineNameClauseFunc;

    interface NamedParameter extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ExpressionHint: Kusto.Language.Editor.CompletionHint;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
        GetCompletionHint(index: number): Kusto.Language.Editor.CompletionHint;
    }
    interface NamedParameterFunc extends Function {
        prototype: NamedParameter;
    }
    var NamedParameter: NamedParameterFunc;

    interface OrderingClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        AscOrDescKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        NullsClause: Kusto.Language.Syntax.OrderingNullsClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface OrderingClauseFunc extends Function {
        prototype: OrderingClause;
    }
    var OrderingClause: OrderingClauseFunc;

    interface OrderingNullsClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        NullsKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        FirstOrLastKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface OrderingNullsClauseFunc extends Function {
        prototype: OrderingNullsClause;
    }
    var OrderingNullsClause: OrderingNullsClauseFunc;

    interface PartitionByIdClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        IdKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Value: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PartitionByIdClauseFunc extends Function {
        prototype: PartitionByIdClause;
    }
    var PartitionByIdClause: PartitionByIdClauseFunc;

    interface PartitionScope extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        InKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PartitionScopeFunc extends Function {
        prototype: PartitionScope;
    }
    var PartitionScope: PartitionScopeFunc;

    interface PatternMatch extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ParameterValues: Kusto.Language.Syntax.ExpressionList | null;
        PathValue: Kusto.Language.Syntax.PatternPathValue | null;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        Body: Kusto.Language.Syntax.FunctionBody | null;
        SemicolonToken: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PatternMatchFunc extends Function {
        prototype: PatternMatch;
    }
    var PatternMatch: PatternMatchFunc;

    interface PatternPathParameter extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenBracket: Kusto.Language.Syntax.SyntaxToken | null;
        Parameter: Kusto.Language.Syntax.NameAndTypeDeclaration | null;
        CloseBracket: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PatternPathParameterFunc extends Function {
        prototype: PatternPathParameter;
    }
    var PatternPathParameter: PatternPathParameterFunc;

    interface PatternPathValue extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DotToken: Kusto.Language.Syntax.SyntaxToken | null;
        OpenBracket: Kusto.Language.Syntax.SyntaxToken | null;
        Value: Kusto.Language.Syntax.Expression | null;
        CloseBracket: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface PatternPathValueFunc extends Function {
        prototype: PatternPathValue;
    }
    var PatternPathValue: PatternPathValueFunc;

    interface ProjectClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ProjectKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ProjectClauseFunc extends Function {
        prototype: ProjectClause;
    }
    var ProjectClause: ProjectClauseFunc;

    interface QueryBlock extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Directives: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.Directive> | null;
        Statements: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Statement>> | null;
        SkippedTokens: Kusto.Language.Syntax.SkippedTokens | null;
        EndOfQuery: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface QueryBlockFunc extends Function {
        prototype: QueryBlock;
    }
    var QueryBlock: QueryBlockFunc;

    /**
     * A node in the Kusto syntax that represents the materilized-view-combine clause.
     *
     * @public
     * @class Kusto.Language.Syntax.MaterializedViewCombineClause
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface MaterializedViewCombineClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Keyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MaterializedViewCombineClauseFunc extends Function {
        prototype: MaterializedViewCombineClause;
    }
    var MaterializedViewCombineClause: MaterializedViewCombineClauseFunc;

    interface EvaluateSchemaClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ColonToken: Kusto.Language.Syntax.SyntaxToken | null;
        Schema: Kusto.Language.Syntax.EvaluateRowSchema | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface EvaluateSchemaClauseFunc extends Function {
        prototype: EvaluateSchemaClause;
    }
    var EvaluateSchemaClause: EvaluateSchemaClauseFunc;

    interface EvaluateRowSchema extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        LeadingComma: Kusto.Language.Syntax.SyntaxToken | null;
        AsteriskToken: Kusto.Language.Syntax.SyntaxToken | null;
        AsteriskTokenComma: Kusto.Language.Syntax.SyntaxToken | null;
        Columns: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NameAndTypeDeclaration>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface EvaluateRowSchemaFunc extends Function {
        prototype: EvaluateRowSchema;
    }
    var EvaluateRowSchema: EvaluateRowSchemaFunc;

    interface DirectiveBlock extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Directives: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.Directive> | null;
        SkippedTokens: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SyntaxToken> | null;
        EndOfText: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface DirectiveBlockFunc extends Function {
        prototype: DirectiveBlock;
    }
    var DirectiveBlock: DirectiveBlockFunc;

    /**
     * All the kinds of tokens that appear in Kusto
     *
     * @public
     * @class Kusto.Language.Syntax.SyntaxKind
     * @augments number
     */
    enum SyntaxKind {
        None = 0,
        __CrossClusterKeyword = 1,
        __CrossDBKeyword = 2,
        __IdKeyword = 3,
        __IsFuzzyKeyword = 4,
        __NoWithSourceKeyword = 5,
        __PackedColumnKeyword = 6,
        __SourceColumnIndexKeyword = 7,
        _3DChartKeyword = 8,
        AccessKeyword = 9,
        AccumulateKeyword = 10,
        AliasKeyword = 11,
        AndKeyword = 12,
        AnomalyChartKeyword = 13,
        AreaChartKeyword = 14,
        AsKeyword = 15,
        AscKeyword = 16,
        AssertSchemaKeyword = 17,
        BagExpansionKeyword = 18,
        BarChartKeyword = 19,
        BetweenKeyword = 20,
        BinKeyword = 21,
        BinLegacy = 22,
        ByKeyword = 23,
        CachingPolicyKeyword = 24,
        CalloutKeyword = 25,
        CancelKeyword = 26,
        CardKeyword = 27,
        ColumnChartKeyword = 28,
        CommandsAndQueriesKeyword = 29,
        ConsumeKeyword = 30,
        ContainsKeyword = 31,
        ContainsCsKeyword = 32,
        Contains_CsKeyword = 33,
        ContextualDataTableKeyword = 34,
        CountKeyword = 35,
        CyclesKeyword = 36,
        DatabaseKeyword = 37,
        DataExportKeyword = 38,
        DataScopeKeyword = 39,
        DataTableKeyword = 40,
        DeclareKeyword = 41,
        DecodeBlocksKeyword = 42,
        DefaultKeyword = 43,
        DescKeyword = 44,
        DistinctKeyword = 45,
        EarliestKeyword = 46,
        EncodingPolicyKeyword = 47,
        EndsWithKeyword = 48,
        EndsWithCsKeyword = 49,
        EntityGroupKeyword = 50,
        EvaluateKeyword = 51,
        ExecuteAndCacheKeyword = 52,
        ExpandOutputKeyword = 53,
        ExtendKeyword = 54,
        ExtentTagsRetentionKeyword = 55,
        ExternalDataKeyword = 56,
        External_DataKeyword = 57,
        DataFormatKeyword = 58,
        InlineExternalTableKeyword = 59,
        DateTimePatternKeyword = 60,
        FacetKeyword = 61,
        FilterKeyword = 62,
        FindKeyword = 63,
        FirstKeyword = 64,
        FlagsKeyword = 65,
        ForkKeyword = 66,
        FromKeyword = 67,
        GetSchemaKeyword = 68,
        GrannyAscKeyword = 69,
        GrannyDescKeyword = 70,
        GraphMatchKeyword = 71,
        GraphShortestPathsKeyword = 72,
        GraphToTableKeyword = 73,
        GraphEdgesKeyword = 74,
        HardDeleteKeyword = 75,
        HardRetentionKeyword = 76,
        HasKeyword = 77,
        HasAnyKeyword = 78,
        HasAllKeyword = 79,
        HasCsKeyword = 80,
        HasPrefixKeyword = 81,
        HasPrefixCsKeyword = 82,
        HasSuffixKeyword = 83,
        HasSuffixCsKeyword = 84,
        HintDotConcurrencyKeyword = 85,
        HintDotDistributionKeyword = 86,
        HintDotMaterializedKeyword = 87,
        HintDotNumPartitions = 88,
        HintDotShuffleKeyKeyword = 89,
        HintDotSpreadKeyword = 90,
        HintDotRemoteKeyword = 91,
        HintDotStrategyKeyword = 92,
        HintDotProgressiveTopKeyword = 93,
        HotCacheKeyword = 94,
        IdKeyword = 95,
        InKeyword = 96,
        InCsKeyword = 97,
        InvokeKeyword = 98,
        IsFuzzyKeyword = 99,
        BestEffortKeyword = 100,
        ForceRemoteKeyword = 101,
        JoinKeyword = 102,
        JournalKeyword = 103,
        KindKeyword = 104,
        LadderChartKeyword = 105,
        LastKeyword = 106,
        LatestKeyword = 107,
        LetKeyword = 108,
        LikeKeyword = 109,
        LikeCsKeyword = 110,
        LimitKeyword = 111,
        LineChartKeyword = 112,
        LookupKeyword = 113,
        MacroExpandKeyword = 114,
        MacroExpandScopeReferenceName = 115,
        MakeGraphKeyword = 116,
        GraphMarkComponentsKeyword = 117,
        GraphWhereNodesKeyword = 118,
        GraphWhereEdgesKeyword = 119,
        MakeSeriesKeyword = 120,
        MatchesRegexKeyword = 121,
        MaterializeKeyword = 122,
        MaterializedViewCombineKeyword = 123,
        MaterializedViewsKeyword = 124,
        MdmKeyword = 125,
        MissingKeyword = 126,
        MvApplyKeyword = 127,
        MvDashApplyKeyword = 128,
        MvDashExpandKeyword = 129,
        MvExpandKeyword = 130,
        NodesKeyword = 131,
        NoOptimizationKeyword = 132,
        NotBetweenKeyword = 133,
        NotContainsKeyword = 134,
        NotContainsCsKeyword = 135,
        NotBangContainsKeyword = 136,
        NotBangContainsCsKeyword = 137,
        NotEndsWithKeyword = 138,
        NotEndsWithCsKeyword = 139,
        NotHasKeyword = 140,
        NotHasCsKeyword = 141,
        NotHasPrefixKeyword = 142,
        NotHasPrefixCsKeyword = 143,
        NotHasSuffixKeyword = 144,
        NotHasSuffixCsKeyword = 145,
        NotInKeyword = 146,
        NotInCsKeyword = 147,
        NotLikeKeyword = 148,
        NotLikeCsKeyword = 149,
        NotStartsWithKeyword = 150,
        NotStartsWithCsKeyword = 151,
        NullKeyword = 152,
        NullsKeyword = 153,
        OfKeyword = 154,
        OnKeyword = 155,
        OptionalKeyword = 156,
        OrKeyword = 157,
        OrderKeyword = 158,
        OthersKeyword = 159,
        OutputKeyword = 160,
        PackKeyword = 161,
        ParseKeyword = 162,
        ParseWhereKeyword = 163,
        ParseKvKeyword = 164,
        PartitionedByKeyword = 165,
        PartitionByKeyword = 166,
        PartitionKeyword = 167,
        PathFormatKeyword = 168,
        PatternKeyword = 169,
        PieChartKeyword = 170,
        PivotChartKeyword = 171,
        PlotlyKeyword = 172,
        GraphKeyword = 173,
        PrintKeyword = 174,
        ProjectKeyword = 175,
        ProjectAwayKeyword = 176,
        ProjectByNamesKeyword = 177,
        _ProjectAwayKeyword = 178,
        ProjectKeepKeyword = 179,
        ProjectRenameKeyword = 180,
        ProjectReorderKeyword = 181,
        ProjectSmartKeyword = 182,
        QueriesKeyword = 183,
        QueryParametersKeyword = 184,
        QueryResultsKeyword = 185,
        RangeKeyword = 186,
        ReduceKeyword = 187,
        RegexKeyword = 188,
        RelaxedKeyword = 189,
        RenderKeyword = 190,
        RestrictedViewAccessKeyword = 191,
        RestrictKeyword = 192,
        RowLevelSecurityKeyword = 193,
        RowstoreKeyword = 194,
        RowstoreReferencesKeyword = 195,
        RowstoreSealInfoKeyword = 196,
        RowstorePolicyKeyword = 197,
        RowstoresKeyword = 198,
        SampleKeyword = 199,
        SampleDistinctKeyword = 200,
        ScanKeyword = 201,
        ScatterChartKeyword = 202,
        SealKeyword = 203,
        SealsKeyword = 204,
        SearchKeyword = 205,
        SerializeKeyword = 206,
        SetKeyword = 207,
        SetOrAppendKeyword = 208,
        SetOrReplaceKeyword = 209,
        ShardsKeyword = 210,
        SimpleKeyword = 211,
        SoftDeleteKeyword = 212,
        SoftRetentionKeyword = 213,
        SortKeyword = 214,
        SqlKeyword = 215,
        StackedAreaChartKeyword = 216,
        StartsWithKeyword = 217,
        StartsWithCsKeyword = 218,
        StatisticsKeyword = 219,
        StepKeyword = 220,
        StoredQueryResultContainersKeyword = 221,
        SummarizeKeyword = 222,
        TablePurgeKeyword = 223,
        TakeKeyword = 224,
        TimeChartKeyword = 225,
        TimelineKeyword = 226,
        TimePivotKeyword = 227,
        TitleKeyword = 228,
        ToKeyword = 229,
        TopKeyword = 230,
        TopHittersKeyword = 231,
        TopNestedKeyword = 232,
        ToScalarKeyword = 233,
        ToTableKeyword = 234,
        TreeMapKeyword = 235,
        TypeOfKeyword = 236,
        UnionKeyword = 237,
        UnrestrictedViewersKeyword = 238,
        UuidKeyword = 239,
        VerboseKeyword = 240,
        ViewersKeyword = 241,
        ViewKeyword = 242,
        ViewsKeyword = 243,
        WhereKeyword = 244,
        WithItemIndexKeyword = 245,
        WithKeyword = 246,
        WithMatchIdKeyword = 247,
        With_SourceKeyword = 248,
        WithStepNameKeyword = 249,
        WithSourceKeyword = 250,
        WithNodeIdKeyword = 251,
        WriteAheadLogKeyword = 252,
        BoolKeyword = 253,
        BooleanKeyword = 254,
        Int8Keyword = 255,
        CharKeyword = 256,
        UInt8Keyword = 257,
        ByteKeyword = 258,
        Int16Keyword = 259,
        UInt16Keyword = 260,
        IntKeyword = 261,
        Int32Keyword = 262,
        UIntKeyword = 263,
        UInt32Keyword = 264,
        LongKeyword = 265,
        Int64Keyword = 266,
        ULongKeyword = 267,
        UInt64Keyword = 268,
        FloatKeyword = 269,
        RealKeyword = 270,
        DecimalKeyword = 271,
        DoubleKeyword = 272,
        StringKeyword = 273,
        TimeKeyword = 274,
        TimespanKeyword = 275,
        DateKeyword = 276,
        DateTimeKeyword = 277,
        GuidKeyword = 278,
        UniqueIdKeyword = 279,
        DynamicKeyword = 280,
        OpenParenToken = 281,
        CloseParenToken = 282,
        OpenBracketToken = 283,
        CloseBracketToken = 284,
        OpenBraceToken = 285,
        CloseBraceToken = 286,
        BarToken = 287,
        LessThanBarToken = 288,
        PlusToken = 289,
        MinusToken = 290,
        AsteriskToken = 291,
        SlashToken = 292,
        PercentToken = 293,
        DotToken = 294,
        DotDotToken = 295,
        BangToken = 296,
        LessThanToken = 297,
        LessThanOrEqualToken = 298,
        GreaterThanToken = 299,
        GreaterThanOrEqualToken = 300,
        EqualToken = 301,
        EqualEqualToken = 302,
        BangEqualToken = 303,
        LessThanGreaterThanToken = 304,
        ColonToken = 305,
        SemicolonToken = 306,
        CommaToken = 307,
        EqualTildeToken = 308,
        BangTildeToken = 309,
        AtToken = 310,
        QuestionToken = 311,
        FatArrowToken = 312,
        BooleanLiteralToken = 313,
        IntLiteralToken = 314,
        LongLiteralToken = 315,
        RealLiteralToken = 316,
        DecimalLiteralToken = 317,
        DateTimeLiteralToken = 318,
        TimespanLiteralToken = 319,
        GuidLiteralToken = 320,
        RawGuidLiteralToken = 321,
        StringLiteralToken = 322,
        IdentifierToken = 323,
        DirectiveToken = 324,
        EndOfTextToken = 325,
        BadToken = 326,
        DashDashToken = 327,
        DashDashGreaterThanToken = 328,
        LessThanDashDashToken = 329,
        BracketDashToken = 330,
        BracketDashGreaterThanToken = 331,
        DashBracketToken = 332,
        LessThanDashBracketToken = 333,
        List = 334,
        SeparatedElement = 335,
        ExpressionList = 336,
        ExpressionCouple = 337,
        RenameList = 338,
        CustomNode = 339,
        BooleanLiteralExpression = 340,
        IntLiteralExpression = 341,
        LongLiteralExpression = 342,
        RealLiteralExpression = 343,
        DecimalLiteralExpression = 344,
        DateTimeLiteralExpression = 345,
        TimespanLiteralExpression = 346,
        GuidLiteralExpression = 347,
        StringLiteralExpression = 348,
        NullLiteralExpression = 349,
        TokenLiteralExpression = 350,
        CompoundStringLiteralExpression = 351,
        TypeOfLiteralExpression = 352,
        DynamicExpression = 353,
        JsonObjectExpression = 354,
        JsonPair = 355,
        JsonArrayExpression = 356,
        TokenName = 357,
        BracketedName = 358,
        BracedName = 359,
        WildcardedName = 360,
        BracketedWildcardedName = 361,
        NameDeclaration = 362,
        NameReference = 363,
        ParenthesizedExpression = 364,
        PathExpression = 365,
        ElementExpression = 366,
        SimpleNamedExpression = 367,
        CompoundNamedExpression = 368,
        FunctionCallExpression = 369,
        ToScalarExpression = 370,
        ToTableExpression = 371,
        BracketedExpression = 372,
        PipeExpression = 373,
        NamedParameter = 374,
        DataScopeExpression = 375,
        DataTableExpression = 376,
        ContextualDataTableExpression = 377,
        ExternalDataExpression = 378,
        ExternalDataWithClause = 379,
        ExternalDataUriList = 380,
        MaterializedViewCombineExpression = 381,
        MaterializedViewCombineClause = 382,
        ParseKvWithClause = 383,
        InlineExternalTableKindClause = 384,
        InlineExternalTableDataFormatClause = 385,
        InlineExternalTablePathFormatClause = 386,
        InlineExternalTablePartitionClause = 387,
        InlineExternalTableExpression = 388,
        InlineExternalTableConnectionStringsClause = 389,
        DateTimePattern = 390,
        PartitionColumnDeclaration = 391,
        InlineExternalTablePathFormatPartitionColumnReference = 392,
        StarExpression = 393,
        AtExpression = 394,
        UnaryPlusExpression = 395,
        UnaryMinusExpression = 396,
        AddExpression = 397,
        SubtractExpression = 398,
        MultiplyExpression = 399,
        DivideExpression = 400,
        ModuloExpression = 401,
        LessThanExpression = 402,
        LessThanOrEqualExpression = 403,
        GreaterThanExpression = 404,
        GreaterThanOrEqualExpression = 405,
        EqualExpression = 406,
        NotEqualExpression = 407,
        AndExpression = 408,
        OrExpression = 409,
        InExpression = 410,
        InCsExpression = 411,
        NotInExpression = 412,
        NotInCsExpression = 413,
        BetweenExpression = 414,
        NotBetweenExpression = 415,
        EqualTildeExpression = 416,
        BangTildeExpression = 417,
        HasExpression = 418,
        HasCsExpression = 419,
        NotHasExpression = 420,
        NotHasCsExpression = 421,
        HasPrefixExpression = 422,
        HasPrefixCsExpression = 423,
        NotHasPrefixExpression = 424,
        NotHasPrefixCsExpression = 425,
        HasSuffixExpression = 426,
        HasSuffixCsExpression = 427,
        NotHasSuffixExpression = 428,
        NotHasSuffixCsExpression = 429,
        LikeExpression = 430,
        LikeCsExpression = 431,
        NotLikeExpression = 432,
        NotLikeCsExpression = 433,
        ContainsExpression = 434,
        ContainsCsExpression = 435,
        NotContainsExpression = 436,
        NotContainsCsExpression = 437,
        StartsWithExpression = 438,
        StartsWithCsExpression = 439,
        NotStartsWithExpression = 440,
        NotStartsWithCsExpression = 441,
        EndsWithExpression = 442,
        EndsWithCsExpression = 443,
        NotEndsWithExpression = 444,
        NotEndsWithCsExpression = 445,
        MatchesRegexExpression = 446,
        SearchExpression = 447,
        HasAnyExpression = 448,
        HasAllExpression = 449,
        TypedColumnReference = 450,
        PackExpression = 451,
        NameAndTypeDeclaration = 452,
        PrimitiveTypeExpression = 453,
        SchemaTypeExpression = 454,
        NameEqualsClause = 455,
        DefaultExpressionClause = 456,
        ToTypeOfClause = 457,
        EvaluateSchemaClause = 458,
        RowSchema = 459,
        EvaluateRowSchema = 460,
        EntityGroupExpression = 461,
        BadQueryOperator = 462,
        AsOperator = 463,
        AssertSchemaOperator = 464,
        ConsumeOperator = 465,
        CountOperator = 466,
        CountAsIdentifierClause = 467,
        DistinctOperator = 468,
        EvaluateOperator = 469,
        ExecuteAndCacheOperator = 470,
        ExtendOperator = 471,
        FacetOperator = 472,
        FacetWithOperatorClause = 473,
        FacetWithExpressionClause = 474,
        FilterOperator = 475,
        FindOperator = 476,
        DataScopeClause = 477,
        FindInClause = 478,
        FindProjectClause = 479,
        GetSchemaOperator = 480,
        GraphMatchOperator = 481,
        GraphMatchPattern = 482,
        GraphMatchPatternNode = 483,
        GraphMatchPatternEdge = 484,
        GraphMatchPatternEdgeRange = 485,
        GraphShortestPathsOperator = 486,
        GraphToTableOperator = 487,
        GraphToTableOutputClause = 488,
        GraphToTableAsClause = 489,
        InvokeOperator = 490,
        LookupOperator = 491,
        JoinOperator = 492,
        JoinOnClause = 493,
        JoinWhereClause = 494,
        SearchOperator = 495,
        ForkOperator = 496,
        ForkExpression = 497,
        MacroExpandOperator = 498,
        MakeGraphOperator = 499,
        MakeGraphWithTablesAndKeysClause = 500,
        MakeGraphWithImplicitIdClause = 501,
        MakeGraphTableAndKeyClause = 502,
        MakeGraphPartitionedByClause = 503,
        GraphMarkComponentsOperator = 504,
        GraphWhereNodesOperator = 505,
        GraphWhereEdgesOperator = 506,
        MakeSeriesOperator = 507,
        MakeSeriesExpression = 508,
        MakeSeriesOnClause = 509,
        MakeSeriesInRangeClause = 510,
        MakeSeriesFromClause = 511,
        MakeSeriesToClause = 512,
        MakeSeriesStepClause = 513,
        MakeSeriesFromToStepClause = 514,
        MakeSeriesByClause = 515,
        MvApplyOperator = 516,
        MvApplyExpression = 517,
        MvApplyRowLimitClause = 518,
        MvApplyContextIdClause = 519,
        MvApplySubqueryExpression = 520,
        MvExpandOperator = 521,
        MvExpandExpression = 522,
        MvExpandRowLimitClause = 523,
        PartitionByOperator = 524,
        PartitionByIdClause = 525,
        PartitionSubquery = 526,
        PartitionQuery = 527,
        PartitionScope = 528,
        PartitionOperator = 529,
        ParseOperator = 530,
        ParseWhereOperator = 531,
        ParseKvOperator = 532,
        PrintOperator = 533,
        ProjectClause = 534,
        ProjectOperator = 535,
        ProjectAwayOperator = 536,
        ProjectByNamesOperator = 537,
        ProjectKeepOperator = 538,
        ProjectRenameOperator = 539,
        ProjectReorderOperator = 540,
        RangeOperator = 541,
        ReduceByOperator = 542,
        ReduceByWithClause = 543,
        RenderOperator = 544,
        RenderWithClause = 545,
        NameReferenceList = 546,
        SampleOperator = 547,
        SampleDistinctOperator = 548,
        ScanOperator = 549,
        ScanOrderByClause = 550,
        ScanPartitionByClause = 551,
        ScanDeclareClause = 552,
        ScanStep = 553,
        ScanStepOutput = 554,
        ScanComputationClause = 555,
        ScanAssignment = 556,
        SerializeOperator = 557,
        SortOperator = 558,
        OrderedExpression = 559,
        OrderingClause = 560,
        OrderingNullsClause = 561,
        SummarizeOperator = 562,
        SummarizeByClause = 563,
        TakeOperator = 564,
        TopHittersOperator = 565,
        TopHittersByClause = 566,
        TopOperator = 567,
        TopNestedOperator = 568,
        TopNestedClause = 569,
        TopNestedWithOthersClause = 570,
        UnionOperator = 571,
        WhereClause = 572,
        AliasStatement = 573,
        ExpressionStatement = 574,
        FunctionDeclaration = 575,
        FunctionParameters = 576,
        FunctionParameter = 577,
        DefaultValueDeclaration = 578,
        FunctionBody = 579,
        LetStatement = 580,
        MaterializeExpression = 581,
        RestrictStatement = 582,
        RestrictStatementWithClause = 583,
        SetOptionStatement = 584,
        OptionValueClause = 585,
        PatternStatement = 586,
        PatternDeclaration = 587,
        PatternPathParameter = 588,
        PatternMatch = 589,
        PatternPathValue = 590,
        QueryParametersStatement = 591,
        CommandWithValueClause = 592,
        CommandWithPropertyListClause = 593,
        BadCommand = 594,
        UnknownCommand = 595,
        CustomCommand = 596,
        PartialCommand = 597,
        CommandAndSkippedTokens = 598,
        QueryBlock = 599,
        CommandBlock = 600,
        DirectiveBlock = 601,
        SkippedTokens = 602,
        InputTextToken = 603,
        Directive = 604
    }

    interface DefaultSyntaxVisitor extends Kusto.Language.Syntax.SyntaxVisitor {
        VisitDirectiveBlock(node: Kusto.Language.Syntax.DirectiveBlock | null): void;
        VisitDirective(node: Kusto.Language.Syntax.Directive | null): void;
        VisitSkippedTokens(node: Kusto.Language.Syntax.SkippedTokens | null): void;
        VisitQueryBlock(node: Kusto.Language.Syntax.QueryBlock | null): void;
        VisitTypeOfLiteralExpression(node: Kusto.Language.Syntax.TypeOfLiteralExpression | null): void;
        VisitBadQueryOperator(node: Kusto.Language.Syntax.BadQueryOperator | null): void;
        VisitCompoundStringLiteralExpression(node: Kusto.Language.Syntax.CompoundStringLiteralExpression | null): void;
        VisitTokenName(node: Kusto.Language.Syntax.TokenName | null): void;
        VisitBracketedName(node: Kusto.Language.Syntax.BracketedName | null): void;
        VisitBracedName(node: Kusto.Language.Syntax.BracedName | null): void;
        VisitWildcardedName(node: Kusto.Language.Syntax.WildcardedName | null): void;
        VisitBracketedWildcardedName(node: Kusto.Language.Syntax.BracketedWildcardedName | null): void;
        VisitNameDeclaration(node: Kusto.Language.Syntax.NameDeclaration | null): void;
        VisitNameReference(node: Kusto.Language.Syntax.NameReference | null): void;
        VisitLiteralExpression(node: Kusto.Language.Syntax.LiteralExpression | null): void;
        VisitStarExpression(node: Kusto.Language.Syntax.StarExpression | null): void;
        VisitAtExpression(node: Kusto.Language.Syntax.AtExpression | null): void;
        VisitJsonPair(node: Kusto.Language.Syntax.JsonPair | null): void;
        VisitJsonObjectExpression(node: Kusto.Language.Syntax.JsonObjectExpression | null): void;
        VisitJsonArrayExpression(node: Kusto.Language.Syntax.JsonArrayExpression | null): void;
        VisitDynamicExpression(node: Kusto.Language.Syntax.DynamicExpression | null): void;
        VisitParenthesizedExpression(node: Kusto.Language.Syntax.ParenthesizedExpression | null): void;
        VisitExpressionList(node: Kusto.Language.Syntax.ExpressionList | null): void;
        VisitExpressionCouple(node: Kusto.Language.Syntax.ExpressionCouple | null): void;
        VisitPrefixUnaryExpression(node: Kusto.Language.Syntax.PrefixUnaryExpression | null): void;
        VisitBinaryExpression(node: Kusto.Language.Syntax.BinaryExpression | null): void;
        VisitInExpression(node: Kusto.Language.Syntax.InExpression | null): void;
        VisitHasAnyExpression(node: Kusto.Language.Syntax.HasAnyExpression | null): void;
        VisitHasAllExpression(node: Kusto.Language.Syntax.HasAllExpression | null): void;
        VisitBetweenExpression(node: Kusto.Language.Syntax.BetweenExpression | null): void;
        VisitFunctionCallExpression(node: Kusto.Language.Syntax.FunctionCallExpression | null): void;
        VisitToScalarExpression(node: Kusto.Language.Syntax.ToScalarExpression | null): void;
        VisitToTableExpression(node: Kusto.Language.Syntax.ToTableExpression | null): void;
        VisitMaterializedViewCombineExpression(node: Kusto.Language.Syntax.MaterializedViewCombineExpression | null): void;
        VisitMaterializedViewCombineNameClause(node: Kusto.Language.Syntax.MaterializedViewCombineNameClause | null): void;
        VisitMaterializedViewCombineClause(node: Kusto.Language.Syntax.MaterializedViewCombineClause | null): void;
        VisitSimpleNamedExpression(node: Kusto.Language.Syntax.SimpleNamedExpression | null): void;
        VisitRenameList(node: Kusto.Language.Syntax.RenameList | null): void;
        VisitCompoundNamedExpression(node: Kusto.Language.Syntax.CompoundNamedExpression | null): void;
        VisitBracketedExpression(node: Kusto.Language.Syntax.BracketedExpression | null): void;
        VisitPathExpression(node: Kusto.Language.Syntax.PathExpression | null): void;
        VisitElementExpression(node: Kusto.Language.Syntax.ElementExpression | null): void;
        VisitPipeExpression(node: Kusto.Language.Syntax.PipeExpression | null): void;
        VisitRangeOperator(node: Kusto.Language.Syntax.RangeOperator | null): void;
        VisitNamedParameter(node: Kusto.Language.Syntax.NamedParameter | null): void;
        VisitConsumeOperator(node: Kusto.Language.Syntax.ConsumeOperator | null): void;
        VisitCountOperator(node: Kusto.Language.Syntax.CountOperator | null): void;
        VisitCountAsIdentifierClause(node: Kusto.Language.Syntax.CountAsIdentifierClause | null): void;
        VisitExecuteAndCacheOperator(node: Kusto.Language.Syntax.ExecuteAndCacheOperator | null): void;
        VisitExtendOperator(node: Kusto.Language.Syntax.ExtendOperator | null): void;
        VisitFacetOperator(node: Kusto.Language.Syntax.FacetOperator | null): void;
        VisitFacetWithOperatorClause(node: Kusto.Language.Syntax.FacetWithOperatorClause | null): void;
        VisitFacetWithExpressionClause(node: Kusto.Language.Syntax.FacetWithExpressionClause | null): void;
        VisitFilterOperator(node: Kusto.Language.Syntax.FilterOperator | null): void;
        VisitGetSchemaOperator(node: Kusto.Language.Syntax.GetSchemaOperator | null): void;
        VisitFindOperator(node: Kusto.Language.Syntax.FindOperator | null): void;
        VisitDataScopeClause(node: Kusto.Language.Syntax.DataScopeClause | null): void;
        VisitTypedColumnReference(node: Kusto.Language.Syntax.TypedColumnReference | null): void;
        VisitFindInClause(node: Kusto.Language.Syntax.FindInClause | null): void;
        VisitFindProjectClause(node: Kusto.Language.Syntax.FindProjectClause | null): void;
        VisitPackExpression(node: Kusto.Language.Syntax.PackExpression | null): void;
        VisitNameAndTypeDeclaration(node: Kusto.Language.Syntax.NameAndTypeDeclaration | null): void;
        VisitPrimitiveTypeExpression(node: Kusto.Language.Syntax.PrimitiveTypeExpression | null): void;
        VisitSearchOperator(node: Kusto.Language.Syntax.SearchOperator | null): void;
        VisitForkOperator(node: Kusto.Language.Syntax.ForkOperator | null): void;
        VisitNameEqualsClause(node: Kusto.Language.Syntax.NameEqualsClause | null): void;
        VisitForkExpression(node: Kusto.Language.Syntax.ForkExpression | null): void;
        VisitMakeSeriesOperator(node: Kusto.Language.Syntax.MakeSeriesOperator | null): void;
        VisitMakeSeriesExpression(node: Kusto.Language.Syntax.MakeSeriesExpression | null): void;
        VisitDefaultExpressionClause(node: Kusto.Language.Syntax.DefaultExpressionClause | null): void;
        VisitMakeSeriesOnClause(node: Kusto.Language.Syntax.MakeSeriesOnClause | null): void;
        VisitMakeSeriesFromClause(node: Kusto.Language.Syntax.MakeSeriesFromClause | null): void;
        VisitMakeSeriesToClause(node: Kusto.Language.Syntax.MakeSeriesToClause | null): void;
        VisitMakeSeriesStepClause(node: Kusto.Language.Syntax.MakeSeriesStepClause | null): void;
        VisitMakeSeriesInRangeClause(node: Kusto.Language.Syntax.MakeSeriesInRangeClause | null): void;
        VisitMakeSeriesFromToStepClause(node: Kusto.Language.Syntax.MakeSeriesFromToStepClause | null): void;
        VisitMakeSeriesByClause(node: Kusto.Language.Syntax.MakeSeriesByClause | null): void;
        VisitMvExpandOperator(node: Kusto.Language.Syntax.MvExpandOperator | null): void;
        VisitMvExpandExpression(node: Kusto.Language.Syntax.MvExpandExpression | null): void;
        VisitMvExpandRowLimitClause(node: Kusto.Language.Syntax.MvExpandRowLimitClause | null): void;
        VisitMvApplyOperator(node: Kusto.Language.Syntax.MvApplyOperator | null): void;
        VisitMvApplyExpression(node: Kusto.Language.Syntax.MvApplyExpression | null): void;
        VisitMvApplyRowLimitClause(node: Kusto.Language.Syntax.MvApplyRowLimitClause | null): void;
        VisitMvApplyContextIdClause(node: Kusto.Language.Syntax.MvApplyContextIdClause | null): void;
        VisitMvApplySubqueryExpression(node: Kusto.Language.Syntax.MvApplySubqueryExpression | null): void;
        VisitToTypeOfClause(node: Kusto.Language.Syntax.ToTypeOfClause | null): void;
        VisitEvaluateSchemaClause(node: Kusto.Language.Syntax.EvaluateSchemaClause | null): void;
        VisitEvaluateOperator(node: Kusto.Language.Syntax.EvaluateOperator | null): void;
        VisitParseOperator(node: Kusto.Language.Syntax.ParseOperator | null): void;
        VisitParseWhereOperator(node: Kusto.Language.Syntax.ParseWhereOperator | null): void;
        VisitParseKvWithClause(node: Kusto.Language.Syntax.ParseKvWithClause | null): void;
        VisitParseKvOperator(node: Kusto.Language.Syntax.ParseKvOperator | null): void;
        VisitPartitionOperator(node: Kusto.Language.Syntax.PartitionOperator | null): void;
        VisitPartitionQuery(node: Kusto.Language.Syntax.PartitionQuery | null): void;
        VisitPartitionScope(node: Kusto.Language.Syntax.PartitionScope | null): void;
        VisitPartitionSubquery(node: Kusto.Language.Syntax.PartitionSubquery | null): void;
        VisitProjectOperator(node: Kusto.Language.Syntax.ProjectOperator | null): void;
        VisitProjectAwayOperator(node: Kusto.Language.Syntax.ProjectAwayOperator | null): void;
        VisitProjectByNamesOperator(node: Kusto.Language.Syntax.ProjectByNamesOperator | null): void;
        VisitProjectKeepOperator(node: Kusto.Language.Syntax.ProjectKeepOperator | null): void;
        VisitProjectRenameOperator(node: Kusto.Language.Syntax.ProjectRenameOperator | null): void;
        VisitProjectReorderOperator(node: Kusto.Language.Syntax.ProjectReorderOperator | null): void;
        VisitSampleOperator(node: Kusto.Language.Syntax.SampleOperator | null): void;
        VisitSampleDistinctOperator(node: Kusto.Language.Syntax.SampleDistinctOperator | null): void;
        VisitEntityGroup(node: Kusto.Language.Syntax.EntityGroup | null): void;
        VisitReduceByOperator(node: Kusto.Language.Syntax.ReduceByOperator | null): void;
        VisitReduceByWithClause(node: Kusto.Language.Syntax.ReduceByWithClause | null): void;
        VisitSummarizeOperator(node: Kusto.Language.Syntax.SummarizeOperator | null): void;
        VisitMacroExpandScopeReferenceName(node: Kusto.Language.Syntax.MacroExpandScopeReferenceName | null): void;
        VisitMacroExpandOperator(node: Kusto.Language.Syntax.MacroExpandOperator | null): void;
        VisitSummarizeByClause(node: Kusto.Language.Syntax.SummarizeByClause | null): void;
        VisitDistinctOperator(node: Kusto.Language.Syntax.DistinctOperator | null): void;
        VisitTakeOperator(node: Kusto.Language.Syntax.TakeOperator | null): void;
        VisitSortOperator(node: Kusto.Language.Syntax.SortOperator | null): void;
        VisitOrderedExpression(node: Kusto.Language.Syntax.OrderedExpression | null): void;
        VisitOrderingClause(node: Kusto.Language.Syntax.OrderingClause | null): void;
        VisitOrderingNullsClause(node: Kusto.Language.Syntax.OrderingNullsClause | null): void;
        VisitTopHittersOperator(node: Kusto.Language.Syntax.TopHittersOperator | null): void;
        VisitTopHittersByClause(node: Kusto.Language.Syntax.TopHittersByClause | null): void;
        VisitTopOperator(node: Kusto.Language.Syntax.TopOperator | null): void;
        VisitTopNestedOperator(node: Kusto.Language.Syntax.TopNestedOperator | null): void;
        VisitTopNestedClause(node: Kusto.Language.Syntax.TopNestedClause | null): void;
        VisitTopNestedWithOthersClause(node: Kusto.Language.Syntax.TopNestedWithOthersClause | null): void;
        VisitUnionOperator(node: Kusto.Language.Syntax.UnionOperator | null): void;
        VisitAsOperator(node: Kusto.Language.Syntax.AsOperator | null): void;
        VisitSerializeOperator(node: Kusto.Language.Syntax.SerializeOperator | null): void;
        VisitInvokeOperator(node: Kusto.Language.Syntax.InvokeOperator | null): void;
        VisitRenderOperator(node: Kusto.Language.Syntax.RenderOperator | null): void;
        VisitMakeGraphOperator(node: Kusto.Language.Syntax.MakeGraphOperator | null): void;
        VisitMakeGraphWithTablesAndKeysClause(node: Kusto.Language.Syntax.MakeGraphWithTablesAndKeysClause | null): void;
        VisitMakeGraphWithImplicitIdClause(node: Kusto.Language.Syntax.MakeGraphWithImplicitIdClause | null): void;
        VisitGraphMarkComponentsOperator(node: Kusto.Language.Syntax.GraphMarkComponentsOperator | null): void;
        VisitGraphWhereNodesOperator(node: Kusto.Language.Syntax.GraphWhereNodesOperator | null): void;
        VisitGraphWhereEdgesOperator(node: Kusto.Language.Syntax.GraphWhereEdgesOperator | null): void;
        VisitMakeGraphTableAndKeyClause(node: Kusto.Language.Syntax.MakeGraphTableAndKeyClause | null): void;
        VisitMakeGraphPartitionedByClause(node: Kusto.Language.Syntax.MakeGraphPartitionedByClause | null): void;
        VisitGraphToTableOperator(node: Kusto.Language.Syntax.GraphToTableOperator | null): void;
        VisitGraphToTableOutputClause(node: Kusto.Language.Syntax.GraphToTableOutputClause | null): void;
        VisitGraphToTableAsClause(node: Kusto.Language.Syntax.GraphToTableAsClause | null): void;
        VisitGraphMatchOperator(node: Kusto.Language.Syntax.GraphMatchOperator | null): void;
        VisitGraphShortestPathsOperator(node: Kusto.Language.Syntax.GraphShortestPathsOperator | null): void;
        VisitGraphMatchPattern(node: Kusto.Language.Syntax.GraphMatchPattern | null): void;
        VisitGraphMatchPatternNode(node: Kusto.Language.Syntax.GraphMatchPatternNode | null): void;
        VisitGraphMatchPatternEdge(node: Kusto.Language.Syntax.GraphMatchPatternEdge | null): void;
        VisitGraphMatchPatternEdgeRange(node: Kusto.Language.Syntax.GraphMatchPatternEdgeRange | null): void;
        VisitWhereClause(node: Kusto.Language.Syntax.WhereClause | null): void;
        VisitProjectClause(node: Kusto.Language.Syntax.ProjectClause | null): void;
        VisitNameReferenceList(node: Kusto.Language.Syntax.NameReferenceList | null): void;
        VisitRenderWithClause(node: Kusto.Language.Syntax.RenderWithClause | null): void;
        VisitPrintOperator(node: Kusto.Language.Syntax.PrintOperator | null): void;
        VisitAliasStatement(node: Kusto.Language.Syntax.AliasStatement | null): void;
        VisitLetStatement(node: Kusto.Language.Syntax.LetStatement | null): void;
        VisitFunctionDeclaration(node: Kusto.Language.Syntax.FunctionDeclaration | null): void;
        VisitFunctionParameters(node: Kusto.Language.Syntax.FunctionParameters | null): void;
        VisitFunctionParameter(node: Kusto.Language.Syntax.FunctionParameter | null): void;
        VisitDefaultValueDeclaration(node: Kusto.Language.Syntax.DefaultValueDeclaration | null): void;
        VisitFunctionBody(node: Kusto.Language.Syntax.FunctionBody | null): void;
        VisitSchemaTypeExpression(node: Kusto.Language.Syntax.SchemaTypeExpression | null): void;
        VisitExpressionStatement(node: Kusto.Language.Syntax.ExpressionStatement | null): void;
        VisitMaterializeExpression(node: Kusto.Language.Syntax.MaterializeExpression | null): void;
        VisitSetOptionStatement(node: Kusto.Language.Syntax.SetOptionStatement | null): void;
        VisitOptionValueClause(node: Kusto.Language.Syntax.OptionValueClause | null): void;
        VisitQueryParametersStatement(node: Kusto.Language.Syntax.QueryParametersStatement | null): void;
        VisitRestrictStatementWithClause(node: Kusto.Language.Syntax.RestrictStatementWithClause | null): void;
        VisitRestrictStatement(node: Kusto.Language.Syntax.RestrictStatement | null): void;
        VisitPatternStatement(node: Kusto.Language.Syntax.PatternStatement | null): void;
        VisitPatternDeclaration(node: Kusto.Language.Syntax.PatternDeclaration | null): void;
        VisitPatternPathParameter(node: Kusto.Language.Syntax.PatternPathParameter | null): void;
        VisitPatternMatch(node: Kusto.Language.Syntax.PatternMatch | null): void;
        VisitPatternPathValue(node: Kusto.Language.Syntax.PatternPathValue | null): void;
        VisitDataScopeExpression(node: Kusto.Language.Syntax.DataScopeExpression | null): void;
        VisitDataTableExpression(node: Kusto.Language.Syntax.DataTableExpression | null): void;
        VisitRowSchema(node: Kusto.Language.Syntax.RowSchema | null): void;
        VisitEvaluateRowSchema(node: Kusto.Language.Syntax.EvaluateRowSchema | null): void;
        VisitExternalDataExpression(node: Kusto.Language.Syntax.ExternalDataExpression | null): void;
        VisitContextualDataTableExpression(node: Kusto.Language.Syntax.ContextualDataTableExpression | null): void;
        VisitExternalDataWithClause(node: Kusto.Language.Syntax.ExternalDataWithClause | null): void;
        VisitInlineExternalTableKindClause(node: Kusto.Language.Syntax.InlineExternalTableKindClause | null): void;
        VisitInlineExternalTableDataFormatClause(node: Kusto.Language.Syntax.InlineExternalTableDataFormatClause | null): void;
        VisitDateTimePattern(node: Kusto.Language.Syntax.DateTimePattern | null): void;
        VisitInlineExternalTablePathFormatPartitionColumnReference(node: Kusto.Language.Syntax.InlineExternalTablePathFormatPartitionColumnReference | null): void;
        VisitInlineExternalTablePathFormatClause(node: Kusto.Language.Syntax.InlineExternalTablePathFormatClause | null): void;
        VisitPartitionColumnDeclaration(node: Kusto.Language.Syntax.PartitionColumnDeclaration | null): void;
        VisitInlineExternalTablePartitionClause(node: Kusto.Language.Syntax.InlineExternalTablePartitionClause | null): void;
        VisitInlineExternalTableConnectionStringsClause(node: Kusto.Language.Syntax.InlineExternalTableConnectionStringsClause | null): void;
        VisitInlineExternalTableExpression(node: Kusto.Language.Syntax.InlineExternalTableExpression | null): void;
        VisitJoinOperator(node: Kusto.Language.Syntax.JoinOperator | null): void;
        VisitLookupOperator(node: Kusto.Language.Syntax.LookupOperator | null): void;
        VisitJoinOnClause(node: Kusto.Language.Syntax.JoinOnClause | null): void;
        VisitJoinWhereClause(node: Kusto.Language.Syntax.JoinWhereClause | null): void;
        VisitScanOperator(node: Kusto.Language.Syntax.ScanOperator | null): void;
        VisitAssertSchemaOperator(node: Kusto.Language.Syntax.AssertSchemaOperator | null): void;
        VisitScanDeclareClause(node: Kusto.Language.Syntax.ScanDeclareClause | null): void;
        VisitScanOrderByClause(node: Kusto.Language.Syntax.ScanOrderByClause | null): void;
        VisitScanPartitionByClause(node: Kusto.Language.Syntax.ScanPartitionByClause | null): void;
        VisitScanStepOutput(node: Kusto.Language.Syntax.ScanStepOutput | null): void;
        VisitScanStep(node: Kusto.Language.Syntax.ScanStep | null): void;
        VisitScanComputationClause(node: Kusto.Language.Syntax.ScanComputationClause | null): void;
        VisitScanAssignment(node: Kusto.Language.Syntax.ScanAssignment | null): void;
        VisitPartitionByOperator(node: Kusto.Language.Syntax.PartitionByOperator | null): void;
        VisitPartitionByIdClause(node: Kusto.Language.Syntax.PartitionByIdClause | null): void;
        VisitCommandWithValueClause(node: Kusto.Language.Syntax.CommandWithValueClause | null): void;
        VisitCommandWithPropertyListClause(node: Kusto.Language.Syntax.CommandWithPropertyListClause | null): void;
        VisitUnknownCommand(node: Kusto.Language.Syntax.UnknownCommand | null): void;
        VisitCustomCommand(node: Kusto.Language.Syntax.CustomCommand | null): void;
        VisitPartialCommand(node: Kusto.Language.Syntax.PartialCommand | null): void;
        VisitCommandAndSkippedTokens(node: Kusto.Language.Syntax.CommandAndSkippedTokens | null): void;
        VisitBadCommand(node: Kusto.Language.Syntax.BadCommand | null): void;
        VisitCommandBlock(node: Kusto.Language.Syntax.CommandBlock | null): void;
        VisitCustom(node: Kusto.Language.Syntax.CustomNode | null): void;
        VisitList(list: Kusto.Language.Syntax.SyntaxList | null): void;
        VisitSeparatedElement(separatedElement: Kusto.Language.Syntax.SeparatedElement | null): void;
    }
    interface DefaultSyntaxVisitorFunc extends Function {
        prototype: DefaultSyntaxVisitor;
        new (): DefaultSyntaxVisitor;
    }
    var DefaultSyntaxVisitor: DefaultSyntaxVisitorFunc;

    /**
     * Facts about {@link }
     *
     * @static
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.SyntaxFacts
     */
    interface SyntaxFacts {
    }
    interface SyntaxFactsFunc extends Function {
        prototype: SyntaxFacts;
        SyntaxData: Kusto.Language.Syntax.SyntaxFacts.SyntaxDataFunc;
        new (): SyntaxFacts;
        /**
         * All the keywords in Kusto
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @function Keywords
         * @type System.Collections.Generic.IEnumerable$1
         */
        Keywords: System.Collections.Generic.IEnumerable$1<string> | null;
        /**
         * All the punctuation in Kusto
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @function Punctuation
         * @type System.Collections.Generic.IEnumerable$1
         */
        Punctuation: System.Collections.Generic.IEnumerable$1<string> | null;
        /**
         * All the scalar math operators in Kusto
         *
         * @static
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @function Operators
         * @type System.Collections.Generic.IEnumerable$1
         */
        Operators: System.Collections.Generic.IEnumerable$1<string> | null;
        /**
         * Gets the text of the specified keyword.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxFacts
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @param   {Kusto.Language.Syntax.SyntaxKind}    kind
         * @return  {string}
         */
        GetText(kind: Kusto.Language.Syntax.SyntaxKind): string | null;
        /**
         * Gets the {@link } of the {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxFacts
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @param   {Kusto.Language.Syntax.SyntaxKind}        kind
         * @return  {Kusto.Language.Syntax.SyntaxCategory}
         */
        GetCategory(kind: Kusto.Language.Syntax.SyntaxKind): Kusto.Language.Syntax.SyntaxCategory;
        IsKeyword(kind: Kusto.Language.Syntax.SyntaxKind): boolean;
        /**
         * True if the text is a keyword (in this table).
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxFacts
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @param   {string}     text
         * @return  {boolean}
         */
        IsKeyword$1(text: string | null): boolean;
        IsPunctuation(kind: Kusto.Language.Syntax.SyntaxKind): boolean;
        IsOperator(kind: Kusto.Language.Syntax.SyntaxKind): boolean;
        IsLiteral(kind: Kusto.Language.Syntax.SyntaxKind): boolean;
        IsType(kind: Kusto.Language.Syntax.SyntaxKind): boolean;
        GetOperatorKind(kind: Kusto.Language.Syntax.SyntaxKind): Kusto.Language.Symbols.OperatorKind;
        /**
         * Gets the {@link } corresponding to the text.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxFacts
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @param   {string}                              text    
         * @param   {Kusto.Language.Syntax.SyntaxKind}    kind
         * @return  {boolean}
         */
        TryGetKind(text: string | null, kind: {v: Kusto.Language.Syntax.SyntaxKind}): boolean;
        /**
         * Gets the {@link } corresponding to the text.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxFacts
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @param   {string}                              text      
         * @param   {number}                              offset    
         * @param   {number}                              length    
         * @param   {Kusto.Language.Syntax.SyntaxKind}    kind
         * @return  {boolean}
         */
        TryGetKind$1(text: string | null, offset: number, length: number, kind: {v: Kusto.Language.Syntax.SyntaxKind}): boolean;
        /**
         * Gets the set of {@link }'s that are in the specified {@link }.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxFacts
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @param   {Kusto.Language.Syntax.SyntaxCategory}        category
         * @return  {System.Collections.Generic.IEnumerable$1}
         */
        GetKinds(category: Kusto.Language.Syntax.SyntaxCategory): System.Collections.Generic.IEnumerable$1<Kusto.Language.Syntax.SyntaxKind> | null;
        /**
         * Get all {@link }'s that have a single text representation: keywords and punctuation.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxFacts
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @return  {System.Collections.Generic.IEnumerable$1}
         */
        GetKindsWithFixedText(): System.Collections.Generic.IEnumerable$1<Kusto.Language.Syntax.SyntaxKind> | null;
        /**
         * True if the keyword can also be used as an identifier.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxFacts
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @param   {Kusto.Language.Syntax.SyntaxKind}    kind
         * @return  {boolean}
         */
        CanBeIdentifier(kind: Kusto.Language.Syntax.SyntaxKind): boolean;
        /**
         * True if the text is a keyword that can be an identifier (in this table).
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxFacts
         * @memberof Kusto.Language.Syntax.SyntaxFacts
         * @param   {string}     text
         * @return  {boolean}
         */
        IsKeywordThatCanBeIdentifier(text: string | null): boolean;
    }
    var SyntaxFacts: SyntaxFactsFunc;
    module SyntaxFacts {
        interface SyntaxData {
            Kind: Kusto.Language.Syntax.SyntaxKind;
            Text: string | null;
            Category: Kusto.Language.Syntax.SyntaxCategory;
            OperatorKind: Kusto.Language.Symbols.OperatorKind;
            CanBeIdentifier: boolean;
            IsType: boolean;
        }
        interface SyntaxDataFunc extends Function {
            prototype: SyntaxData;
            new (kind: Kusto.Language.Syntax.SyntaxKind, text: string | null, category: Kusto.Language.Syntax.SyntaxCategory, opKind: Kusto.Language.Symbols.OperatorKind, canBeIdentifier: boolean, isType: boolean): SyntaxData;
        }
    }

    interface SyntaxExtensions {
    }
    interface SyntaxExtensionsFunc extends Function {
        prototype: SyntaxExtensions;
        new (): SyntaxExtensions;
        /**
         * Gets the first {@link } that matches the {@link } definition
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxExtensions
         * @memberof Kusto.Language.Syntax.SyntaxExtensions
         * @param   {Kusto.Language.Syntax.SyntaxList$1}       list         
         * @param   {Kusto.Language.QueryOperatorParameter}    parameter
         * @return  {Kusto.Language.Syntax.NamedParameter}
         */
        GetParameter(list: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null, parameter: Kusto.Language.QueryOperatorParameter | null): Kusto.Language.Syntax.NamedParameter | null;
        /**
         * Gets literal value of the named parameter, or the default value if the parameter is not in the list or the value is not a literal of the correct type.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxExtensions
         * @memberof Kusto.Language.Syntax.SyntaxExtensions
         * @param   {Function}                                 TValue          
         * @param   {Kusto.Language.Syntax.SyntaxList$1}       list            
         * @param   {Kusto.Language.QueryOperatorParameter}    declaration     
         * @param   {TValue}                                   defaultValue
         * @return  {TValue}
         */
        GetParameterLiteralValue<TValue>(TValue: {prototype: TValue}, list: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null, declaration: Kusto.Language.QueryOperatorParameter | null, defaultValue?: TValue): TValue;
        /**
         * Gets name value of the query operator parameter, or null if the parameter is not present in the list or does not contains a name as a value.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxExtensions
         * @memberof Kusto.Language.Syntax.SyntaxExtensions
         * @param   {Kusto.Language.Syntax.SyntaxList$1}       list           
         * @param   {Kusto.Language.QueryOperatorParameter}    declaration
         * @return  {string}
         */
        GetParameterNameValue(list: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null, declaration: Kusto.Language.QueryOperatorParameter | null): string | null;
    }
    var SyntaxExtensions: SyntaxExtensionsFunc;

    enum SyntaxCategory {
        None = 0,
        Keyword = 1,
        Identifier = 2,
        Punctuation = 3,
        Operator = 4,
        Literal = 5,
        List = 6,
        Node = 7,
        Other = 8
    }

    enum IncludeTrivia {
        All = 0,
        Interior = 1,
        Minimal = 2,
        SingleLine = 3
    }

    interface FakeExpression {
    }
    interface FakeExpressionFunc extends Function {
        prototype: FakeExpression;
        new (): FakeExpression;
        Create(type: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Syntax.Expression | null;
        CreateNamed(name: string | null, type: Kusto.Language.Symbols.TypeSymbol | null): Kusto.Language.Syntax.Expression | null;
    }
    var FakeExpression: FakeExpressionFunc;

    enum DiagnosticsInclude {
        Syntactic = 1,
        Semantic = 2,
        Expansion = 4
    }

    /**
     * Describes facts about a child element of a {@link }.
     *
     * @public
     * @class Kusto.Language.Syntax.CustomElementDescriptor
     */
    interface CustomElementDescriptor {
        /**
         * The name of the element.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.CustomElementDescriptor
         * @function Name
         * @type string
         */
        Name: string | null;
        /**
         * If true, then the element is optional (can be null)
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.CustomElementDescriptor
         * @function IsOptional
         * @type boolean
         */
        IsOptional: boolean;
        /**
         * The {@link } associated with this element.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.CustomElementDescriptor
         * @function CompletionHint
         * @type Kusto.Language.Editor.CompletionHint
         */
        CompletionHint: Kusto.Language.Editor.CompletionHint;
        IsDefault: boolean;
        WithName(name: string | null): Kusto.Language.Syntax.CustomElementDescriptor | null;
        WithHint(hint: Kusto.Language.Editor.CompletionHint): Kusto.Language.Syntax.CustomElementDescriptor | null;
        WithIsOptional(isOptional: boolean): Kusto.Language.Syntax.CustomElementDescriptor | null;
    }
    interface CustomElementDescriptorFunc extends Function {
        prototype: CustomElementDescriptor;
        $ctor1: {
            new (name: string | null, hint: Kusto.Language.Editor.CompletionHint, isOptional: boolean): CustomElementDescriptor
        };
        ctor: {
            new (hint: Kusto.Language.Editor.CompletionHint, isOptional: boolean): CustomElementDescriptor
        };
        Default: Kusto.Language.Syntax.CustomElementDescriptor | null;
        From$2(name: string | null, hint?: Kusto.Language.Editor.CompletionHint, isOptional?: boolean): Kusto.Language.Syntax.CustomElementDescriptor | null;
        From(hint: Kusto.Language.Editor.CompletionHint, isOptional?: boolean): Kusto.Language.Syntax.CustomElementDescriptor | null;
        From$1(isOptional: boolean): Kusto.Language.Syntax.CustomElementDescriptor | null;
    }
    var CustomElementDescriptor: CustomElementDescriptorFunc;

    /**
     * A basic element of syntax.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.SyntaxElement
     */
    interface SyntaxElement {
        /**
         * Kind of token
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function Kind
         * @type Kusto.Language.Syntax.SyntaxKind
         */
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * True if this {@link } or any child element has syntax diagnostics.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function ContainsSyntaxDiagnostics
         * @type boolean
         */
        ContainsSyntaxDiagnostics: boolean;
        /**
         * True if this element has syntax diagnostics.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function HasSyntaxDiagnostics
         * @type boolean
         */
        HasSyntaxDiagnostics: boolean;
        /**
         * All syntax diagnostics located at this element.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function SyntaxDiagnostics
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        SyntaxDiagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * True if the {@link } is a {@link }.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function IsToken
         * @type boolean
         */
        IsToken: boolean;
        /**
         * True if the element is taking the place of a missing element.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function IsMissing
         * @type boolean
         */
        IsMissing: boolean;
        /**
         * The parent node of this element.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function Parent
         * @type Kusto.Language.Syntax.SyntaxNode
         */
        Parent: Kusto.Language.Syntax.SyntaxNode | null;
        /**
         * The root element
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function Root
         * @type Kusto.Language.Syntax.SyntaxElement
         */
        Root: Kusto.Language.Syntax.SyntaxElement | null;
        /**
         * The {@link } that contains this {@link }.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function Tree
         * @type Kusto.Language.Syntax.SyntaxTree
         */
        Tree: Kusto.Language.Syntax.SyntaxTree | null;
        /**
         * Index of this element in parent node's child elements.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function IndexInParent
         * @type number
         */
        IndexInParent: number;
        /**
         * The number of immediate child elements this element has.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function ChildCount
         * @type number
         */
        ChildCount: number;
        /**
         * The depth of this node below the root.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function Depth
         * @type number
         */
        Depth: number;
        /**
         * The name of the element given by the parent.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function NameInParent
         * @type string
         */
        NameInParent: string | null;
        /**
         * The position in the source of the start of the leading trivia.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function TriviaStart
         * @type number
         */
        TriviaStart: number;
        /**
         * The full width (in characters) of this element including leading trivia.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function FullWidth
         * @type number
         */
        FullWidth: number;
        /**
         * The width (in characters) of the leading trivia.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function TriviaWidth
         * @type number
         */
        TriviaWidth: number;
        /**
         * The position in the source where the element's first token text starts.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function TextStart
         * @type number
         */
        TextStart: number;
        /**
         * The position in the source immediately after this element.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function End
         * @type number
         */
        End: number;
        /**
         * The width (in characters) of this element, not including trivia.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @function Width
         * @type number
         */
        Width: number;
        /**
         * Initializes the element (does one-time computations)
         *
         * @instance
         * @protected
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @return  {void}
         */
        /**
         * Attaches the {@link } as a child of this {@link }.
         *
         * @instance
         * @protected
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Function}    TElement    
         * @param   {TElement}    element     
         * @param   {boolean}     optional
         * @return  {TElement}
         */
        /**
         * Gets syntax diagnostics for this {@link } an all child elements.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetContainedSyntaxDiagnostics(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * Creates a copy of this {@link } with the specified diagnostics.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {System.Collections.Generic.IEnumerable$1}    diagnostics
         * @return  {Kusto.Language.Syntax.SyntaxElement}
         */
        WithDiagnostics(diagnostics: System.Collections.Generic.IEnumerable$1<Kusto.Language.Diagnostic> | null): Kusto.Language.Syntax.SyntaxElement | null;
        /**
         * Creates a copy of this {@link } with the specified diagnostics added.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {System.Collections.Generic.IEnumerable$1}    diagnostics
         * @return  {Kusto.Language.Syntax.SyntaxElement}
         */
        WithAdditionalDiagnostics$1(diagnostics: System.Collections.Generic.IEnumerable$1<Kusto.Language.Diagnostic> | null): Kusto.Language.Syntax.SyntaxElement | null;
        /**
         * Creates a copy of this {@link } with the specified diagnostics added.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Array.<Kusto.Language.Diagnostic>}      diagnostics
         * @return  {Kusto.Language.Syntax.SyntaxElement}
         */
        WithAdditionalDiagnostics(diagnostics: Kusto.Language.Diagnostic[] | null): Kusto.Language.Syntax.SyntaxElement | null;
        /**
         * Get the child element of this node at the specified index.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {number}                                 index
         * @return  {Kusto.Language.Syntax.SyntaxElement}
         */
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        /**
         * True if the child element at the specified index is optional and may contain a null value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {number}     index
         * @return  {boolean}
         */
        IsOptional(index: number): boolean;
        /**
         * Gets the name of the child element at the specified index.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {number}    index
         * @return  {string}
         */
        GetName(index: number): string | null;
        /**
         * The {@link } to use for this child element index in the syntax tree.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {number}                                  index
         * @return  {Kusto.Language.Editor.CompletionHint}
         */
        GetCompletionHint(index: number): Kusto.Language.Editor.CompletionHint;
        /**
         * The generated {@link } to use for this child element index in the syntax tree.
         *
         * @instance
         * @protected
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {number}                                  index
         * @return  {Kusto.Language.Editor.CompletionHint}
         */
        /**
         * True if the element or any of its descendants have missing children
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @return  {boolean}
         */
        HasMissingChildren(): boolean;
        /**
         * Gets the index of the element within this element's childred, or -1 if the element is not a child of this element.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Kusto.Language.Syntax.SyntaxElement}    child
         * @return  {number}
         */
        GetChildIndex(child: Kusto.Language.Syntax.SyntaxElement | null): number;
        /**
         * Gets the child node index for the subtree that the descendant is part of
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Kusto.Language.Syntax.SyntaxElement}    descendant
         * @return  {number}
         */
        GetDescendantIndex(descendant: Kusto.Language.Syntax.SyntaxElement | null): number;
        /**
         * Returns true if this element is the ancestor of the specified element.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Kusto.Language.Syntax.SyntaxElement}    element
         * @return  {boolean}
         */
        IsAncestorOf(element: Kusto.Language.Syntax.SyntaxElement | null): boolean;
        /**
         * Gets the first ancestor of this element that matches the specified type and predicate.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Function}       TElement     
         * @param   {System.Func}    predicate
         * @return  {TElement}
         */
        GetFirstAncestor<TElement>(TElement: {prototype: TElement}, predicate?: {(arg: TElement): boolean} | null): TElement | null;
        /**
         * Gets the first ancestor of this element (including itself) that matches the specified type and predicate.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Function}       TElement     
         * @param   {System.Func}    predicate
         * @return  {TElement}
         */
        GetFirstAncestorOrSelf<TElement>(TElement: {prototype: TElement}, predicate?: {(arg: TElement): boolean} | null): TElement | null;
        /**
         * Gets the all ancestors of this element (including itself) that match the specified type and predicate.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Function}                                      TElement     
         * @param   {System.Func}                                   predicate
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetAncestors<TElement>(TElement: {prototype: TElement}, predicate?: {(arg: TElement): boolean} | null): System.Collections.Generic.IReadOnlyList$1<TElement> | null;
        /**
         * Gets the all ancestors of this element (including itself) that match the specified type and predicate.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Function}                                      TElement     
         * @param   {System.Func}                                   predicate
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetAncestorsOrSelf<TElement>(TElement: {prototype: TElement}, predicate?: {(arg: TElement): boolean} | null): System.Collections.Generic.IReadOnlyList$1<TElement> | null;
        /**
         * Gets the first descendant of this element that matches the specified type and predicate.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Function}       TElement     
         * @param   {System.Func}    predicate
         * @return  {TElement}
         */
        GetFirstDescendant<TElement>(TElement: {prototype: TElement}, predicate?: {(arg: TElement): boolean} | null): TElement | null;
        /**
         * Gets the first descendant of this element (including itself) that matches the specified type and predicate.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Function}       TElement     
         * @param   {System.Func}    predicate
         * @return  {TElement}
         */
        GetFirstDescendantOrSelf<TElement>(TElement: {prototype: TElement}, predicate?: {(arg: TElement): boolean} | null): TElement | null;
        /**
         * Gets all descendants of this element that match the specified type and predicate.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Function}                                      TElement     
         * @param   {System.Func}                                   predicate
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetDescendants<TElement>(TElement: {prototype: TElement}, predicate?: {(arg: TElement): boolean} | null): System.Collections.Generic.IReadOnlyList$1<TElement> | null;
        /**
         * Gets all descendants of this element (including itself) that match the specified type and predicate.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Function}                                      TElement     
         * @param   {System.Func}                                   predicate
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetDescendantsOrSelf<TElement>(TElement: {prototype: TElement}, predicate?: {(arg: TElement): boolean} | null): System.Collections.Generic.IReadOnlyList$1<TElement> | null;
        /**
         * Gets all the tokens contained by this {@link } in lexical order.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {boolean}                                       includeZeroWidthTokens
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetTokens(includeZeroWidthTokens?: boolean): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxToken> | null;
        /**
         * Invokes the action for each token contained by this {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {System.Action}    action
         * @return  {void}
         */
        WalkTokens(action: {(arg: Kusto.Language.Syntax.SyntaxToken): void} | null): void;
        /**
         * Invokes the action for each token contained by this {@link }
         between the {@link } and {@link } text position.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {number}           start     
         * @param   {number}           end       
         * @param   {System.Action}    action
         * @return  {void}
         */
        WalkTokens$1(start: number, end: number, action: {(arg: Kusto.Language.Syntax.SyntaxToken): void} | null): void;
        /**
         * Invokes the action for the element and its descendants, in lexical order, top down.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {System.Action}    action    The action that is invoked for each {@link }
         * @return  {void}
         */
        WalkElements(action: {(arg: Kusto.Language.Syntax.SyntaxElement): void} | null): void;
        /**
         * Gets the next {@link } sibling of this element or null if there is no next sibling.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {boolean}                                includeZeroWidthElements
         * @return  {Kusto.Language.Syntax.SyntaxElement}
         */
        GetNextSibling(includeZeroWidthElements?: boolean): Kusto.Language.Syntax.SyntaxElement | null;
        /**
         * Gets the previous {@link } sibling of this element or null if there is no previous sibling.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {boolean}                                includeZeroWidthElements
         * @return  {Kusto.Language.Syntax.SyntaxElement}
         */
        GetPreviousSibling(includeZeroWidthElements?: boolean): Kusto.Language.Syntax.SyntaxElement | null;
        /**
         * Gets the first descendant token of this {@link } in lexical order.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {boolean}                              includeZeroWidthTokens
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        GetFirstToken(includeZeroWidthTokens?: boolean): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Gets the last descendant token of this {@link } in lexical order.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {boolean}                              includeZeroWidthTokens
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        GetLastToken(includeZeroWidthTokens?: boolean): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Gets the token at the specified position in the source text.
         If the position is within trivia, it will find the next token after the trivia.
         If the position is past the end of the tree, it will return the last token.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {number}                               position
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        GetTokenAt(position: number): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Gets the node that spans the specified range in the source text.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {number}                              position    
         * @param   {number}                              length
         * @return  {Kusto.Language.Syntax.SyntaxNode}
         */
        GetNodeAt(position: number, length: number): Kusto.Language.Syntax.SyntaxNode | null;
        /**
         * Creates a copy of this {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {boolean}                                includeDiagnostics
         * @return  {Kusto.Language.Syntax.SyntaxElement}
         */
        Clone(includeDiagnostics?: boolean): Kusto.Language.Syntax.SyntaxElement | null;
        toString(): string | null;
        ToString(includeTrivia: Kusto.Language.Syntax.IncludeTrivia): string | null;
        ToString$1(includeTrivia: Kusto.Language.Syntax.IncludeTrivia, maxLength: number): string | null;
        /**
         * Gets diagnostics for this {@link } an all child elements.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Kusto.Language.Syntax.DiagnosticsInclude}      include              
         * @param   {Kusto.Language.Utils.CancellationToken}        cancellationToken
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetContainedDiagnostics(include?: Kusto.Language.Syntax.DiagnosticsInclude, cancellationToken?: Kusto.Language.Utils.CancellationToken): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
    }
    interface SyntaxElementFunc extends Function {
        prototype: SyntaxElement;
        Flags: SyntaxElement.FlagsFunc;
        ExtendedData: Kusto.Language.Syntax.SyntaxElement.ExtendedDataFunc;
        /**
         * Gets the common ancestor between two elements a and b.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Kusto.Language.Syntax.SyntaxElement}    a    
         * @param   {Kusto.Language.Syntax.SyntaxElement}    b
         * @return  {Kusto.Language.Syntax.SyntaxNode}
         */
        GetCommonAncestor(a: Kusto.Language.Syntax.SyntaxElement | null, b: Kusto.Language.Syntax.SyntaxElement | null): Kusto.Language.Syntax.SyntaxNode | null;
        /**
         * Gets the descendants of the specified element that match the specified type and predicate.
         *
         * @static
         * @private
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Function}                                      TElement       
         * @param   {Kusto.Language.Syntax.SyntaxElement}           element        
         * @param   {System.Func}                                   predicate      
         * @param   {boolean}                                       includeSelf
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        /**
         * Walks this element and its descendants in lexical order, invoking the actions for each {@link } including the root element.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Kusto.Language.Syntax.SyntaxElement}    root         The root element of the walk. The walk includes this element and any descendant elements.
         * @param   {System.Action}                          fnBefore     An optional function that is invoked for each element before any child elements are visited.
         * @param   {System.Action}                          fnAfter      An optional function that is invoked for each element after any child elements have been visited.
         * @param   {System.Func}                            fnDescend    An optional function that determines whether the children of an element are visited.
         * @return  {void}
         */
        WalkElements(root: Kusto.Language.Syntax.SyntaxElement | null, fnBefore?: {(arg: Kusto.Language.Syntax.SyntaxElement): void} | null, fnAfter?: {(arg: Kusto.Language.Syntax.SyntaxElement): void} | null, fnDescend?: {(arg: Kusto.Language.Syntax.SyntaxElement): boolean} | null): void;
        /**
         * Walks this node and its descendants in lexical order, invoking the actions for each {@link } including the root node.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxElement
         * @memberof Kusto.Language.Syntax.SyntaxElement
         * @param   {Kusto.Language.Syntax.SyntaxNode}    root         The root node of the walk. The walk includes this node and any descendant nodes.
         * @param   {System.Action}                       fnBefore     An optional function that is invoked for each node before any child nodes are visited.
         * @param   {System.Action}                       fnAfter      An optional function that is invoked for each node after any child nodes have been visited.
         * @param   {System.Func}                         fnDescend    An optional function that determines whether the child nodes of an node are visited.
         * @return  {void}
         */
        WalkNodes(root: Kusto.Language.Syntax.SyntaxNode | null, fnBefore?: {(arg: Kusto.Language.Syntax.SyntaxNode): void} | null, fnAfter?: {(arg: Kusto.Language.Syntax.SyntaxNode): void} | null, fnDescend?: {(arg: Kusto.Language.Syntax.SyntaxNode): boolean} | null): void;
    }
    var SyntaxElement: SyntaxElementFunc;
    module SyntaxElement {
        interface Flags {
        }
        interface FlagsFunc extends Function {
            prototype: Flags;
            ContainsDiagnostics: number;
        }

        interface ExtendedData {
            SyntaxDiagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
            SemanticInfo: Kusto.Language.Binding.SemanticInfo | null;
        }
        interface ExtendedDataFunc extends Function {
            prototype: ExtendedData;
            new (): ExtendedData;
        }
    }

    interface UnionOperator extends Kusto.Language.Syntax.QueryOperator {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        UnionKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface UnionOperatorFunc extends Function {
        prototype: UnionOperator;
    }
    var UnionOperator: UnionOperatorFunc;

    /**
     * A non-terminal element in the syntax (contains one or more nodes/tokens/lists).
     *
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.SyntaxNode
     * @augments Kusto.Language.Syntax.SyntaxElement
     */
    interface SyntaxNode extends Kusto.Language.Syntax.SyntaxElement {
        FullWidth: number;
        /**
         * The {@link } referenced by this node.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @function ReferencedSymbol
         * @type Kusto.Language.Symbols.Symbol
         */
        ReferencedSymbol: Kusto.Language.Symbols.Symbol | null;
        /**
         * The matching {@link } for the referenced function or operator.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @function ReferencedSignature
         * @type Kusto.Language.Symbols.Signature
         */
        ReferencedSignature: Kusto.Language.Symbols.Signature | null;
        /**
         * True if the called function at this location has errors in its definition.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @function CalledFunctionHasErrors
         * @type boolean
         */
        CalledFunctionHasErrors: boolean;
        /**
         * A list of alternate versions of this node with differing semantics.
         For example, macro-expand statement lists may have multiple different 
         semantic evaluations based on entity group elements.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @function Alternates
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Alternates: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxNode> | null;
        /**
         * Semantic diagnostics associated with this location.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @function SemanticDiagnostics
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        SemanticDiagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * Creates a copy of this {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxNode
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @param   {boolean}                             includeDiagnostics
         * @return  {Kusto.Language.Syntax.SyntaxNode}
         */
        Clone$1(includeDiagnostics?: boolean): Kusto.Language.Syntax.SyntaxNode | null;
        /**
         * Invokes the action for this node and its descendant nodes, in lexical order, top down.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxNode
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @param   {System.Action}    action    The action that is invoked for each {@link }
         * @return  {void}
         */
        WalkNodes(action: {(arg: Kusto.Language.Syntax.SyntaxNode): void} | null): void;
        /**
         * Returns the corresponding node in the original syntax tree
         for a node in a copied tree fragment.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxNode
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @return  {Kusto.Language.Syntax.SyntaxNode}
         */
        GetOriginalNode(): Kusto.Language.Syntax.SyntaxNode | null;
        /**
         * Gets the equivalent position in the original syntax tree
         as the position within this copied tree fragment.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxNode
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @param   {number}    position
         * @return  {number}
         */
        GetPositionInOriginalTree(position: number): number;
        /**
         * Gets the body of the referenced function evaluted in the context of the call site (or null).
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxNode
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @return  {Kusto.Language.Syntax.SyntaxNode}
         */
        GetExpansion(): Kusto.Language.Syntax.SyntaxNode | null;
        /**
         * Gets the body of the called function evaluated at this location (or null).
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxNode
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @return  {Kusto.Language.Syntax.SyntaxNode}
         */
        GetCalledFunctionBody(): Kusto.Language.Syntax.SyntaxNode | null;
        /**
         * Gets the {@link } associated with the called function.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxNode
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @return  {Kusto.Language.FunctionBodyFacts}
         */
        GetCalledFunctionFacts(): Kusto.Language.FunctionBodyFacts | null;
        /**
         * Gets the diagnostics associated with the called function.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxNode
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetCalledFunctionDiagnostics(): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null;
        /**
         * Gets the {@link } stored in this node's extended data.
         *
         * @instance
         * @this Kusto.Language.Syntax.SyntaxNode
         * @memberof Kusto.Language.Syntax.SyntaxNode
         * @return  {Kusto.Language.Binding.SemanticInfo}
         */
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SyntaxNodeFunc extends Function {
        prototype: SyntaxNode;
    }
    var SyntaxNode: SyntaxNodeFunc;

    interface DefaultSyntaxVisitor$1<TResult> extends Kusto.Language.Syntax.SyntaxVisitor$1<TResult> {
        VisitDirectiveBlock(node: Kusto.Language.Syntax.DirectiveBlock | null): TResult;
        VisitDirective(node: Kusto.Language.Syntax.Directive | null): TResult;
        VisitSkippedTokens(node: Kusto.Language.Syntax.SkippedTokens | null): TResult;
        VisitQueryBlock(node: Kusto.Language.Syntax.QueryBlock | null): TResult;
        VisitTypeOfLiteralExpression(node: Kusto.Language.Syntax.TypeOfLiteralExpression | null): TResult;
        VisitBadQueryOperator(node: Kusto.Language.Syntax.BadQueryOperator | null): TResult;
        VisitCompoundStringLiteralExpression(node: Kusto.Language.Syntax.CompoundStringLiteralExpression | null): TResult;
        VisitTokenName(node: Kusto.Language.Syntax.TokenName | null): TResult;
        VisitBracketedName(node: Kusto.Language.Syntax.BracketedName | null): TResult;
        VisitBracedName(node: Kusto.Language.Syntax.BracedName | null): TResult;
        VisitWildcardedName(node: Kusto.Language.Syntax.WildcardedName | null): TResult;
        VisitBracketedWildcardedName(node: Kusto.Language.Syntax.BracketedWildcardedName | null): TResult;
        VisitNameDeclaration(node: Kusto.Language.Syntax.NameDeclaration | null): TResult;
        VisitNameReference(node: Kusto.Language.Syntax.NameReference | null): TResult;
        VisitLiteralExpression(node: Kusto.Language.Syntax.LiteralExpression | null): TResult;
        VisitStarExpression(node: Kusto.Language.Syntax.StarExpression | null): TResult;
        VisitAtExpression(node: Kusto.Language.Syntax.AtExpression | null): TResult;
        VisitJsonPair(node: Kusto.Language.Syntax.JsonPair | null): TResult;
        VisitJsonObjectExpression(node: Kusto.Language.Syntax.JsonObjectExpression | null): TResult;
        VisitJsonArrayExpression(node: Kusto.Language.Syntax.JsonArrayExpression | null): TResult;
        VisitDynamicExpression(node: Kusto.Language.Syntax.DynamicExpression | null): TResult;
        VisitParenthesizedExpression(node: Kusto.Language.Syntax.ParenthesizedExpression | null): TResult;
        VisitExpressionList(node: Kusto.Language.Syntax.ExpressionList | null): TResult;
        VisitExpressionCouple(node: Kusto.Language.Syntax.ExpressionCouple | null): TResult;
        VisitPrefixUnaryExpression(node: Kusto.Language.Syntax.PrefixUnaryExpression | null): TResult;
        VisitBinaryExpression(node: Kusto.Language.Syntax.BinaryExpression | null): TResult;
        VisitInExpression(node: Kusto.Language.Syntax.InExpression | null): TResult;
        VisitHasAnyExpression(node: Kusto.Language.Syntax.HasAnyExpression | null): TResult;
        VisitHasAllExpression(node: Kusto.Language.Syntax.HasAllExpression | null): TResult;
        VisitBetweenExpression(node: Kusto.Language.Syntax.BetweenExpression | null): TResult;
        VisitFunctionCallExpression(node: Kusto.Language.Syntax.FunctionCallExpression | null): TResult;
        VisitToScalarExpression(node: Kusto.Language.Syntax.ToScalarExpression | null): TResult;
        VisitToTableExpression(node: Kusto.Language.Syntax.ToTableExpression | null): TResult;
        VisitMaterializedViewCombineExpression(node: Kusto.Language.Syntax.MaterializedViewCombineExpression | null): TResult;
        VisitMaterializedViewCombineNameClause(node: Kusto.Language.Syntax.MaterializedViewCombineNameClause | null): TResult;
        VisitMaterializedViewCombineClause(node: Kusto.Language.Syntax.MaterializedViewCombineClause | null): TResult;
        VisitSimpleNamedExpression(node: Kusto.Language.Syntax.SimpleNamedExpression | null): TResult;
        VisitRenameList(node: Kusto.Language.Syntax.RenameList | null): TResult;
        VisitCompoundNamedExpression(node: Kusto.Language.Syntax.CompoundNamedExpression | null): TResult;
        VisitBracketedExpression(node: Kusto.Language.Syntax.BracketedExpression | null): TResult;
        VisitPathExpression(node: Kusto.Language.Syntax.PathExpression | null): TResult;
        VisitElementExpression(node: Kusto.Language.Syntax.ElementExpression | null): TResult;
        VisitPipeExpression(node: Kusto.Language.Syntax.PipeExpression | null): TResult;
        VisitRangeOperator(node: Kusto.Language.Syntax.RangeOperator | null): TResult;
        VisitNamedParameter(node: Kusto.Language.Syntax.NamedParameter | null): TResult;
        VisitConsumeOperator(node: Kusto.Language.Syntax.ConsumeOperator | null): TResult;
        VisitCountOperator(node: Kusto.Language.Syntax.CountOperator | null): TResult;
        VisitCountAsIdentifierClause(node: Kusto.Language.Syntax.CountAsIdentifierClause | null): TResult;
        VisitExecuteAndCacheOperator(node: Kusto.Language.Syntax.ExecuteAndCacheOperator | null): TResult;
        VisitExtendOperator(node: Kusto.Language.Syntax.ExtendOperator | null): TResult;
        VisitFacetOperator(node: Kusto.Language.Syntax.FacetOperator | null): TResult;
        VisitFacetWithOperatorClause(node: Kusto.Language.Syntax.FacetWithOperatorClause | null): TResult;
        VisitFacetWithExpressionClause(node: Kusto.Language.Syntax.FacetWithExpressionClause | null): TResult;
        VisitFilterOperator(node: Kusto.Language.Syntax.FilterOperator | null): TResult;
        VisitGetSchemaOperator(node: Kusto.Language.Syntax.GetSchemaOperator | null): TResult;
        VisitFindOperator(node: Kusto.Language.Syntax.FindOperator | null): TResult;
        VisitDataScopeClause(node: Kusto.Language.Syntax.DataScopeClause | null): TResult;
        VisitTypedColumnReference(node: Kusto.Language.Syntax.TypedColumnReference | null): TResult;
        VisitFindInClause(node: Kusto.Language.Syntax.FindInClause | null): TResult;
        VisitFindProjectClause(node: Kusto.Language.Syntax.FindProjectClause | null): TResult;
        VisitPackExpression(node: Kusto.Language.Syntax.PackExpression | null): TResult;
        VisitNameAndTypeDeclaration(node: Kusto.Language.Syntax.NameAndTypeDeclaration | null): TResult;
        VisitPrimitiveTypeExpression(node: Kusto.Language.Syntax.PrimitiveTypeExpression | null): TResult;
        VisitSearchOperator(node: Kusto.Language.Syntax.SearchOperator | null): TResult;
        VisitForkOperator(node: Kusto.Language.Syntax.ForkOperator | null): TResult;
        VisitNameEqualsClause(node: Kusto.Language.Syntax.NameEqualsClause | null): TResult;
        VisitForkExpression(node: Kusto.Language.Syntax.ForkExpression | null): TResult;
        VisitMakeSeriesOperator(node: Kusto.Language.Syntax.MakeSeriesOperator | null): TResult;
        VisitMakeSeriesExpression(node: Kusto.Language.Syntax.MakeSeriesExpression | null): TResult;
        VisitDefaultExpressionClause(node: Kusto.Language.Syntax.DefaultExpressionClause | null): TResult;
        VisitMakeSeriesOnClause(node: Kusto.Language.Syntax.MakeSeriesOnClause | null): TResult;
        VisitMakeSeriesFromClause(node: Kusto.Language.Syntax.MakeSeriesFromClause | null): TResult;
        VisitMakeSeriesToClause(node: Kusto.Language.Syntax.MakeSeriesToClause | null): TResult;
        VisitMakeSeriesStepClause(node: Kusto.Language.Syntax.MakeSeriesStepClause | null): TResult;
        VisitMakeSeriesInRangeClause(node: Kusto.Language.Syntax.MakeSeriesInRangeClause | null): TResult;
        VisitMakeSeriesFromToStepClause(node: Kusto.Language.Syntax.MakeSeriesFromToStepClause | null): TResult;
        VisitMakeSeriesByClause(node: Kusto.Language.Syntax.MakeSeriesByClause | null): TResult;
        VisitMvExpandOperator(node: Kusto.Language.Syntax.MvExpandOperator | null): TResult;
        VisitMvExpandExpression(node: Kusto.Language.Syntax.MvExpandExpression | null): TResult;
        VisitMvExpandRowLimitClause(node: Kusto.Language.Syntax.MvExpandRowLimitClause | null): TResult;
        VisitMvApplyOperator(node: Kusto.Language.Syntax.MvApplyOperator | null): TResult;
        VisitMvApplyExpression(node: Kusto.Language.Syntax.MvApplyExpression | null): TResult;
        VisitMvApplyRowLimitClause(node: Kusto.Language.Syntax.MvApplyRowLimitClause | null): TResult;
        VisitMvApplyContextIdClause(node: Kusto.Language.Syntax.MvApplyContextIdClause | null): TResult;
        VisitMvApplySubqueryExpression(node: Kusto.Language.Syntax.MvApplySubqueryExpression | null): TResult;
        VisitToTypeOfClause(node: Kusto.Language.Syntax.ToTypeOfClause | null): TResult;
        VisitEvaluateSchemaClause(node: Kusto.Language.Syntax.EvaluateSchemaClause | null): TResult;
        VisitEvaluateOperator(node: Kusto.Language.Syntax.EvaluateOperator | null): TResult;
        VisitParseOperator(node: Kusto.Language.Syntax.ParseOperator | null): TResult;
        VisitParseWhereOperator(node: Kusto.Language.Syntax.ParseWhereOperator | null): TResult;
        VisitParseKvWithClause(node: Kusto.Language.Syntax.ParseKvWithClause | null): TResult;
        VisitParseKvOperator(node: Kusto.Language.Syntax.ParseKvOperator | null): TResult;
        VisitPartitionOperator(node: Kusto.Language.Syntax.PartitionOperator | null): TResult;
        VisitPartitionQuery(node: Kusto.Language.Syntax.PartitionQuery | null): TResult;
        VisitPartitionScope(node: Kusto.Language.Syntax.PartitionScope | null): TResult;
        VisitPartitionSubquery(node: Kusto.Language.Syntax.PartitionSubquery | null): TResult;
        VisitProjectOperator(node: Kusto.Language.Syntax.ProjectOperator | null): TResult;
        VisitProjectAwayOperator(node: Kusto.Language.Syntax.ProjectAwayOperator | null): TResult;
        VisitProjectByNamesOperator(node: Kusto.Language.Syntax.ProjectByNamesOperator | null): TResult;
        VisitProjectKeepOperator(node: Kusto.Language.Syntax.ProjectKeepOperator | null): TResult;
        VisitProjectRenameOperator(node: Kusto.Language.Syntax.ProjectRenameOperator | null): TResult;
        VisitProjectReorderOperator(node: Kusto.Language.Syntax.ProjectReorderOperator | null): TResult;
        VisitSampleOperator(node: Kusto.Language.Syntax.SampleOperator | null): TResult;
        VisitSampleDistinctOperator(node: Kusto.Language.Syntax.SampleDistinctOperator | null): TResult;
        VisitEntityGroup(node: Kusto.Language.Syntax.EntityGroup | null): TResult;
        VisitReduceByOperator(node: Kusto.Language.Syntax.ReduceByOperator | null): TResult;
        VisitReduceByWithClause(node: Kusto.Language.Syntax.ReduceByWithClause | null): TResult;
        VisitSummarizeOperator(node: Kusto.Language.Syntax.SummarizeOperator | null): TResult;
        VisitMacroExpandScopeReferenceName(node: Kusto.Language.Syntax.MacroExpandScopeReferenceName | null): TResult;
        VisitMacroExpandOperator(node: Kusto.Language.Syntax.MacroExpandOperator | null): TResult;
        VisitSummarizeByClause(node: Kusto.Language.Syntax.SummarizeByClause | null): TResult;
        VisitDistinctOperator(node: Kusto.Language.Syntax.DistinctOperator | null): TResult;
        VisitTakeOperator(node: Kusto.Language.Syntax.TakeOperator | null): TResult;
        VisitSortOperator(node: Kusto.Language.Syntax.SortOperator | null): TResult;
        VisitOrderedExpression(node: Kusto.Language.Syntax.OrderedExpression | null): TResult;
        VisitOrderingClause(node: Kusto.Language.Syntax.OrderingClause | null): TResult;
        VisitOrderingNullsClause(node: Kusto.Language.Syntax.OrderingNullsClause | null): TResult;
        VisitTopHittersOperator(node: Kusto.Language.Syntax.TopHittersOperator | null): TResult;
        VisitTopHittersByClause(node: Kusto.Language.Syntax.TopHittersByClause | null): TResult;
        VisitTopOperator(node: Kusto.Language.Syntax.TopOperator | null): TResult;
        VisitTopNestedOperator(node: Kusto.Language.Syntax.TopNestedOperator | null): TResult;
        VisitTopNestedClause(node: Kusto.Language.Syntax.TopNestedClause | null): TResult;
        VisitTopNestedWithOthersClause(node: Kusto.Language.Syntax.TopNestedWithOthersClause | null): TResult;
        VisitUnionOperator(node: Kusto.Language.Syntax.UnionOperator | null): TResult;
        VisitAsOperator(node: Kusto.Language.Syntax.AsOperator | null): TResult;
        VisitSerializeOperator(node: Kusto.Language.Syntax.SerializeOperator | null): TResult;
        VisitInvokeOperator(node: Kusto.Language.Syntax.InvokeOperator | null): TResult;
        VisitRenderOperator(node: Kusto.Language.Syntax.RenderOperator | null): TResult;
        VisitMakeGraphOperator(node: Kusto.Language.Syntax.MakeGraphOperator | null): TResult;
        VisitMakeGraphWithTablesAndKeysClause(node: Kusto.Language.Syntax.MakeGraphWithTablesAndKeysClause | null): TResult;
        VisitMakeGraphWithImplicitIdClause(node: Kusto.Language.Syntax.MakeGraphWithImplicitIdClause | null): TResult;
        VisitGraphMarkComponentsOperator(node: Kusto.Language.Syntax.GraphMarkComponentsOperator | null): TResult;
        VisitGraphWhereNodesOperator(node: Kusto.Language.Syntax.GraphWhereNodesOperator | null): TResult;
        VisitGraphWhereEdgesOperator(node: Kusto.Language.Syntax.GraphWhereEdgesOperator | null): TResult;
        VisitMakeGraphTableAndKeyClause(node: Kusto.Language.Syntax.MakeGraphTableAndKeyClause | null): TResult;
        VisitMakeGraphPartitionedByClause(node: Kusto.Language.Syntax.MakeGraphPartitionedByClause | null): TResult;
        VisitGraphToTableOperator(node: Kusto.Language.Syntax.GraphToTableOperator | null): TResult;
        VisitGraphToTableOutputClause(node: Kusto.Language.Syntax.GraphToTableOutputClause | null): TResult;
        VisitGraphToTableAsClause(node: Kusto.Language.Syntax.GraphToTableAsClause | null): TResult;
        VisitGraphMatchOperator(node: Kusto.Language.Syntax.GraphMatchOperator | null): TResult;
        VisitGraphShortestPathsOperator(node: Kusto.Language.Syntax.GraphShortestPathsOperator | null): TResult;
        VisitGraphMatchPattern(node: Kusto.Language.Syntax.GraphMatchPattern | null): TResult;
        VisitGraphMatchPatternNode(node: Kusto.Language.Syntax.GraphMatchPatternNode | null): TResult;
        VisitGraphMatchPatternEdge(node: Kusto.Language.Syntax.GraphMatchPatternEdge | null): TResult;
        VisitGraphMatchPatternEdgeRange(node: Kusto.Language.Syntax.GraphMatchPatternEdgeRange | null): TResult;
        VisitWhereClause(node: Kusto.Language.Syntax.WhereClause | null): TResult;
        VisitProjectClause(node: Kusto.Language.Syntax.ProjectClause | null): TResult;
        VisitNameReferenceList(node: Kusto.Language.Syntax.NameReferenceList | null): TResult;
        VisitRenderWithClause(node: Kusto.Language.Syntax.RenderWithClause | null): TResult;
        VisitPrintOperator(node: Kusto.Language.Syntax.PrintOperator | null): TResult;
        VisitAliasStatement(node: Kusto.Language.Syntax.AliasStatement | null): TResult;
        VisitLetStatement(node: Kusto.Language.Syntax.LetStatement | null): TResult;
        VisitFunctionDeclaration(node: Kusto.Language.Syntax.FunctionDeclaration | null): TResult;
        VisitFunctionParameters(node: Kusto.Language.Syntax.FunctionParameters | null): TResult;
        VisitFunctionParameter(node: Kusto.Language.Syntax.FunctionParameter | null): TResult;
        VisitDefaultValueDeclaration(node: Kusto.Language.Syntax.DefaultValueDeclaration | null): TResult;
        VisitFunctionBody(node: Kusto.Language.Syntax.FunctionBody | null): TResult;
        VisitSchemaTypeExpression(node: Kusto.Language.Syntax.SchemaTypeExpression | null): TResult;
        VisitExpressionStatement(node: Kusto.Language.Syntax.ExpressionStatement | null): TResult;
        VisitMaterializeExpression(node: Kusto.Language.Syntax.MaterializeExpression | null): TResult;
        VisitSetOptionStatement(node: Kusto.Language.Syntax.SetOptionStatement | null): TResult;
        VisitOptionValueClause(node: Kusto.Language.Syntax.OptionValueClause | null): TResult;
        VisitQueryParametersStatement(node: Kusto.Language.Syntax.QueryParametersStatement | null): TResult;
        VisitRestrictStatementWithClause(node: Kusto.Language.Syntax.RestrictStatementWithClause | null): TResult;
        VisitRestrictStatement(node: Kusto.Language.Syntax.RestrictStatement | null): TResult;
        VisitPatternStatement(node: Kusto.Language.Syntax.PatternStatement | null): TResult;
        VisitPatternDeclaration(node: Kusto.Language.Syntax.PatternDeclaration | null): TResult;
        VisitPatternPathParameter(node: Kusto.Language.Syntax.PatternPathParameter | null): TResult;
        VisitPatternMatch(node: Kusto.Language.Syntax.PatternMatch | null): TResult;
        VisitPatternPathValue(node: Kusto.Language.Syntax.PatternPathValue | null): TResult;
        VisitDataScopeExpression(node: Kusto.Language.Syntax.DataScopeExpression | null): TResult;
        VisitDataTableExpression(node: Kusto.Language.Syntax.DataTableExpression | null): TResult;
        VisitRowSchema(node: Kusto.Language.Syntax.RowSchema | null): TResult;
        VisitEvaluateRowSchema(node: Kusto.Language.Syntax.EvaluateRowSchema | null): TResult;
        VisitExternalDataExpression(node: Kusto.Language.Syntax.ExternalDataExpression | null): TResult;
        VisitContextualDataTableExpression(node: Kusto.Language.Syntax.ContextualDataTableExpression | null): TResult;
        VisitExternalDataWithClause(node: Kusto.Language.Syntax.ExternalDataWithClause | null): TResult;
        VisitInlineExternalTableKindClause(node: Kusto.Language.Syntax.InlineExternalTableKindClause | null): TResult;
        VisitInlineExternalTableDataFormatClause(node: Kusto.Language.Syntax.InlineExternalTableDataFormatClause | null): TResult;
        VisitDateTimePattern(node: Kusto.Language.Syntax.DateTimePattern | null): TResult;
        VisitInlineExternalTablePathFormatPartitionColumnReference(node: Kusto.Language.Syntax.InlineExternalTablePathFormatPartitionColumnReference | null): TResult;
        VisitInlineExternalTablePathFormatClause(node: Kusto.Language.Syntax.InlineExternalTablePathFormatClause | null): TResult;
        VisitPartitionColumnDeclaration(node: Kusto.Language.Syntax.PartitionColumnDeclaration | null): TResult;
        VisitInlineExternalTablePartitionClause(node: Kusto.Language.Syntax.InlineExternalTablePartitionClause | null): TResult;
        VisitInlineExternalTableConnectionStringsClause(node: Kusto.Language.Syntax.InlineExternalTableConnectionStringsClause | null): TResult;
        VisitInlineExternalTableExpression(node: Kusto.Language.Syntax.InlineExternalTableExpression | null): TResult;
        VisitJoinOperator(node: Kusto.Language.Syntax.JoinOperator | null): TResult;
        VisitLookupOperator(node: Kusto.Language.Syntax.LookupOperator | null): TResult;
        VisitJoinOnClause(node: Kusto.Language.Syntax.JoinOnClause | null): TResult;
        VisitJoinWhereClause(node: Kusto.Language.Syntax.JoinWhereClause | null): TResult;
        VisitScanOperator(node: Kusto.Language.Syntax.ScanOperator | null): TResult;
        VisitAssertSchemaOperator(node: Kusto.Language.Syntax.AssertSchemaOperator | null): TResult;
        VisitScanDeclareClause(node: Kusto.Language.Syntax.ScanDeclareClause | null): TResult;
        VisitScanOrderByClause(node: Kusto.Language.Syntax.ScanOrderByClause | null): TResult;
        VisitScanPartitionByClause(node: Kusto.Language.Syntax.ScanPartitionByClause | null): TResult;
        VisitScanStepOutput(node: Kusto.Language.Syntax.ScanStepOutput | null): TResult;
        VisitScanStep(node: Kusto.Language.Syntax.ScanStep | null): TResult;
        VisitScanComputationClause(node: Kusto.Language.Syntax.ScanComputationClause | null): TResult;
        VisitScanAssignment(node: Kusto.Language.Syntax.ScanAssignment | null): TResult;
        VisitPartitionByOperator(node: Kusto.Language.Syntax.PartitionByOperator | null): TResult;
        VisitPartitionByIdClause(node: Kusto.Language.Syntax.PartitionByIdClause | null): TResult;
        VisitCommandWithValueClause(node: Kusto.Language.Syntax.CommandWithValueClause | null): TResult;
        VisitCommandWithPropertyListClause(node: Kusto.Language.Syntax.CommandWithPropertyListClause | null): TResult;
        VisitUnknownCommand(node: Kusto.Language.Syntax.UnknownCommand | null): TResult;
        VisitCustomCommand(node: Kusto.Language.Syntax.CustomCommand | null): TResult;
        VisitPartialCommand(node: Kusto.Language.Syntax.PartialCommand | null): TResult;
        VisitCommandAndSkippedTokens(node: Kusto.Language.Syntax.CommandAndSkippedTokens | null): TResult;
        VisitBadCommand(node: Kusto.Language.Syntax.BadCommand | null): TResult;
        VisitCommandBlock(node: Kusto.Language.Syntax.CommandBlock | null): TResult;
        VisitCustom(node: Kusto.Language.Syntax.CustomNode | null): TResult;
        VisitList(list: Kusto.Language.Syntax.SyntaxList | null): TResult;
        VisitSeparatedElement(separatedElement: Kusto.Language.Syntax.SeparatedElement | null): TResult;
    }
    interface DefaultSyntaxVisitor$1Func extends Function {
        <TResult>($TResult: Bridge.TypeRef<TResult>): {
            prototype: DefaultSyntaxVisitor$1<TResult>;
            new (): DefaultSyntaxVisitor$1<TResult>;
        }
    }
    var DefaultSyntaxVisitor$1: DefaultSyntaxVisitor$1Func;

    /**
     * A single token in the syntax grammar.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.SyntaxToken
     * @augments Kusto.Language.Syntax.SyntaxElement
     */
    interface SyntaxToken extends Kusto.Language.Syntax.SyntaxElement {
        /**
         * Any whitespace or comments preceding this token.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @function Trivia
         * @type string
         */
        Trivia: string | null;
        /**
         * The raw text of the token
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @function Text
         * @type string
         */
        Text: string | null;
        /**
         * The value of the literal.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @function Value
         * @type System.Object
         */
        Value: any | null;
        /**
         * The text of the literal without prefix, parentheses or encoding.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @function ValueText
         * @type string
         */
        ValueText: string | null;
        ChildCount: number;
        /**
         * The width (number of characters) of the trivia preceding the token.
         *
         * @instance
         * @public
         * @override
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @function TriviaWidth
         * @type number
         */
        TriviaWidth: number;
        /**
         * The width (number of characters) of the token including trivia.
         *
         * @instance
         * @public
         * @override
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @function FullWidth
         * @type number
         */
        FullWidth: number;
        /**
         * The width (number of characters) of the token, not including trivia.
         *
         * @instance
         * @public
         * @override
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @function Width
         * @type number
         */
        Width: number;
        IsToken: boolean;
        /**
         * The token is a literal.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @function IsLiteral
         * @type boolean
         */
        IsLiteral: boolean;
        /**
         * The prefix of the literal in the form: prefix(value)
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @function Prefix
         * @type string
         */
        Prefix: string | null;
        /**
         * Creates a copy of this {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxToken
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @param   {boolean}                              includeDiagnostics
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        Clone$1(includeDiagnostics?: boolean): Kusto.Language.Syntax.SyntaxToken | null;
        ToString(includeTrivia: Kusto.Language.Syntax.IncludeTrivia): string | null;
        /**
         * Gets the next {@link } in lexical order.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxToken
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @param   {boolean}                              includeZeroWidthTokens
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        GetNextToken(includeZeroWidthTokens?: boolean): Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * Gets the previous {@link } in lexical orer.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxToken
         * @memberof Kusto.Language.Syntax.SyntaxToken
         * @param   {boolean}                              includeZeroWidthTokens
         * @return  {Kusto.Language.Syntax.SyntaxToken}
         */
        GetPreviousToken(includeZeroWidthTokens?: boolean): Kusto.Language.Syntax.SyntaxToken | null;
    }
    interface SyntaxTokenFunc extends Function {
        prototype: SyntaxToken;
        KindToken: Kusto.Language.Syntax.SyntaxToken.KindTokenFunc;
        IdentifierToken: Kusto.Language.Syntax.SyntaxToken.IdentifierTokenFunc;
        LiteralToken: Kusto.Language.Syntax.SyntaxToken.LiteralTokenFunc;
        MissingToken: Kusto.Language.Syntax.SyntaxToken.MissingTokenFunc;
        TextAndKindToken: Kusto.Language.Syntax.SyntaxToken.TextAndKindTokenFunc;
        From(token: Kusto.Language.Parsing.LexicalToken | null, diagnostic?: Kusto.Language.Diagnostic | null): Kusto.Language.Syntax.SyntaxToken | null;
        Keyword(trivia: string | null, keyword: Kusto.Language.Syntax.SyntaxKind, valueText?: string | null, diagnostics?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): Kusto.Language.Syntax.SyntaxToken | null;
        Identifier(trivia: string | null, text: string | null, valueText?: string | null, diagnostics?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): Kusto.Language.Syntax.SyntaxToken | null;
        Punctuation(trivia: string | null, kind: Kusto.Language.Syntax.SyntaxKind, diagnostics?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): Kusto.Language.Syntax.SyntaxToken | null;
        Operator(trivia: string | null, kind: Kusto.Language.Syntax.SyntaxKind, diagnostics?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): Kusto.Language.Syntax.SyntaxToken | null;
        Literal(trivia: string | null, text: string | null, kind: Kusto.Language.Syntax.SyntaxKind, diagnostics?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): Kusto.Language.Syntax.SyntaxToken | null;
        Other(trivia: string | null, text: string | null, kind: Kusto.Language.Syntax.SyntaxKind, diagnostics?: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): Kusto.Language.Syntax.SyntaxToken | null;
        Missing$1(trivia: string | null, kind: Kusto.Language.Syntax.SyntaxKind, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): Kusto.Language.Syntax.SyntaxToken | null;
        Missing(kind: Kusto.Language.Syntax.SyntaxKind, diagnostic?: Kusto.Language.Diagnostic | null): Kusto.Language.Syntax.SyntaxToken | null;
    }
    var SyntaxToken: SyntaxTokenFunc;
    module SyntaxToken {
        /**
         * A {@link } for keywords.
         *
         * @private
         * @class Kusto.Language.Syntax.SyntaxToken.KindToken
         * @augments Kusto.Language.Syntax.SyntaxToken
         */
        interface KindToken extends Kusto.Language.Syntax.SyntaxToken {
            Trivia: string | null;
            Kind: Kusto.Language.Syntax.SyntaxKind;
            FullWidth: number;
            Text: string | null;
        }
        interface KindTokenFunc extends Function {
            prototype: KindToken;
            new (trivia: string | null, kind: Kusto.Language.Syntax.SyntaxKind, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): KindToken;
        }

        /**
         * A {@link } for identifiers.
         *
         * @private
         * @class Kusto.Language.Syntax.SyntaxToken.IdentifierToken
         * @augments Kusto.Language.Syntax.SyntaxToken
         */
        interface IdentifierToken extends Kusto.Language.Syntax.SyntaxToken {
            Trivia: string | null;
            Text: string | null;
            FullWidth: number;
            Kind: Kusto.Language.Syntax.SyntaxKind;
            Value: any | null;
        }
        interface IdentifierTokenFunc extends Function {
            prototype: IdentifierToken;
            new (trivia: string | null, text: string | null, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): IdentifierToken;
        }

        /**
         * A {@link } for a literal value.
         *
         * @private
         * @class Kusto.Language.Syntax.SyntaxToken.LiteralToken
         * @augments Kusto.Language.Syntax.SyntaxToken
         */
        interface LiteralToken extends Kusto.Language.Syntax.SyntaxToken {
            Trivia: string | null;
            Text: string | null;
            Kind: Kusto.Language.Syntax.SyntaxKind;
            FullWidth: number;
            IsLiteral: boolean;
            Value: any | null;
            ValueText: string | null;
            Prefix: string | null;
        }
        interface LiteralTokenFunc extends Function {
            prototype: LiteralToken;
            new (trivia: string | null, text: string | null, kind: Kusto.Language.Syntax.SyntaxKind, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): LiteralToken;
            /**
             * Returns the string literal value if the text is a string literal, otherwise just the text itself.
             *
             * @static
             * @private
             * @this Kusto.Language.Syntax.SyntaxToken.LiteralToken
             * @memberof Kusto.Language.Syntax.SyntaxToken.LiteralToken
             * @param   {string}    text
             * @return  {string}
             */
        }

        interface MissingToken extends Kusto.Language.Syntax.SyntaxToken {
            Trivia: string | null;
            Kind: Kusto.Language.Syntax.SyntaxKind;
            FullWidth: number;
            Text: string | null;
            IsMissing: boolean;
        }
        interface MissingTokenFunc extends Function {
            prototype: MissingToken;
            new (trivia: string | null, kind: Kusto.Language.Syntax.SyntaxKind, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): MissingToken;
        }

        /**
         * A {@link } that encodes the text and kind
         *
         * @private
         * @class Kusto.Language.Syntax.SyntaxToken.TextAndKindToken
         * @augments Kusto.Language.Syntax.SyntaxToken
         */
        interface TextAndKindToken extends Kusto.Language.Syntax.SyntaxToken {
            Trivia: string | null;
            Text: string | null;
            ValueText: string | null;
            Value: any | null;
            Kind: Kusto.Language.Syntax.SyntaxKind;
            FullWidth: number;
        }
        interface TextAndKindTokenFunc extends Function {
            prototype: TextAndKindToken;
            new (trivia: string | null, text: string | null, valueText: string | null, kind: Kusto.Language.Syntax.SyntaxKind, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): TextAndKindToken;
        }
    }

    /**
     * A node in the Kusto syntax that represents a statement.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.Statement
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface Statement extends Kusto.Language.Syntax.SyntaxNode {
    }
    interface StatementFunc extends Function {
        prototype: Statement;
    }
    var Statement: StatementFunc;

    /**
     * A node in the Kusto syntax that represents an expression
     *
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.Expression
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface Expression extends Kusto.Language.Syntax.SyntaxNode {
        /**
         * True if the expression is a literal.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.Expression
         * @function IsLiteral
         * @type boolean
         */
        IsLiteral: boolean;
        /**
         * The value info of the literal expression.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.Expression
         * @function LiteralValueInfo
         * @type Kusto.Language.Syntax.ValueInfo
         */
        LiteralValueInfo: Kusto.Language.Syntax.ValueInfo | null;
        /**
         * The value of the literal expression.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.Expression
         * @function LiteralValue
         * @type System.Object
         */
        LiteralValue: any | null;
        /**
         * The result type of the expression.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.Expression
         * @function ResultType
         * @type Kusto.Language.Symbols.TypeSymbol
         */
        ResultType: Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * The unadjusted result type of the expression.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.Expression
         * @function RawResultType
         * @type Kusto.Language.Symbols.TypeSymbol
         */
        RawResultType: Kusto.Language.Symbols.TypeSymbol | null;
        /**
         * True if the expression is considered constant.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.Expression
         * @function IsConstant
         * @type boolean
         */
        IsConstant: boolean;
        /**
         * Returns the value info of the constant, or null if it is unknown.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.Expression
         * @function ConstantValueInfo
         * @type Kusto.Language.Syntax.ValueInfo
         */
        ConstantValueInfo: Kusto.Language.Syntax.ValueInfo | null;
        /**
         * The value of the constant or null if it is unknown.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.Expression
         * @function ConstantValue
         * @type System.Object
         */
        ConstantValue: any | null;
    }
    interface ExpressionFunc extends Function {
        prototype: Expression;
    }
    var Expression: ExpressionFunc;

    /**
     * A node in the Kusto syntax that represents a name.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.Name
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface Name extends Kusto.Language.Syntax.SyntaxNode {
        SimpleName: string | null;
    }
    interface NameFunc extends Function {
        prototype: Name;
    }
    var Name: NameFunc;

    /**
     * A node in the Kusto syntax that represents a clause
     *
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.Clause
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface Clause extends Kusto.Language.Syntax.SyntaxNode {
    }
    interface ClauseFunc extends Function {
        prototype: Clause;
    }
    var Clause: ClauseFunc;

    interface CommandBlock extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Directives: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.Directive> | null;
        Statements: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Statement>> | null;
        SkippedTokens: Kusto.Language.Syntax.SkippedTokens | null;
        EndOfCommand: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface CommandBlockFunc extends Function {
        prototype: CommandBlock;
    }
    var CommandBlock: CommandBlockFunc;

    /**
     * A {@link } with variable shape.
     *
     * @public
     * @class Kusto.Language.Syntax.CustomNode
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface CustomNode extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        GetCompletionHint(index: number): Kusto.Language.Editor.CompletionHint;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface CustomNodeFunc extends Function {
        prototype: CustomNode;
        $ctor2: {
            new (shape: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null, elements: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.SyntaxElement> | null, diagnostics: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Diagnostic> | null): CustomNode
        };
        $ctor1: {
            new (shape: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null, elements: Kusto.Language.Syntax.SyntaxElement[] | null): CustomNode
        };
        ctor: {
            new (elements: Kusto.Language.Syntax.SyntaxElement[] | null): CustomNode
        };
        /**
         * Gets the default shape for a {@link } with the specified number of elements.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.CustomNode
         * @memberof Kusto.Language.Syntax.CustomNode
         * @param   {number}                                        count
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        GetDefaultShape(count: number): System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Syntax.CustomElementDescriptor> | null;
    }
    var CustomNode: CustomNodeFunc;

    interface DefaultValueDeclaration extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Equal: Kusto.Language.Syntax.SyntaxToken | null;
        Value: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface DefaultValueDeclarationFunc extends Function {
        prototype: DefaultValueDeclaration;
    }
    var DefaultValueDeclaration: DefaultValueDeclarationFunc;

    interface Directive extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Token: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        /**
         * The name of the directive
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.Directive
         * @function Name
         * @type string
         */
        Name: string | null;
        /**
         * The text after the name contain any arguments
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.Directive
         * @function ArgumentsText
         * @type string
         */
        ArgumentsText: string | null;
        /**
         * The text parsed into arguments.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.Directive
         * @function Arguments
         * @type System.Collections.Generic.IReadOnlyList$1
         */
        Arguments: System.Collections.Generic.IReadOnlyList$1<Kusto.Language.Editor.ClientDirectiveArgument> | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface DirectiveFunc extends Function {
        prototype: Directive;
    }
    var Directive: DirectiveFunc;

    /**
     * A node in the kusto syntax that represents a parenthesized list of names.
     *
     * @public
     * @class Kusto.Language.Syntax.RenameList
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface RenameList extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The open parenthesis token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.RenameList
         * @function OpenParen
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The list of name declarations.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.RenameList
         * @function Names
         * @type Kusto.Language.Syntax.SyntaxList$1
         */
        Names: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NameDeclaration>> | null;
        /**
         * The close parenthesis token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.RenameList
         * @function CloseParen
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface RenameListFunc extends Function {
        prototype: RenameList;
    }
    var RenameList: RenameListFunc;

    interface RestrictStatementWithClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Properties: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NamedParameter>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface RestrictStatementWithClauseFunc extends Function {
        prototype: RestrictStatementWithClause;
    }
    var RestrictStatementWithClause: RestrictStatementWithClauseFunc;

    interface MakeGraphTableAndKeyClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Table: Kusto.Language.Syntax.Expression | null;
        OnKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Column: Kusto.Language.Syntax.NameReference | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface MakeGraphTableAndKeyClauseFunc extends Function {
        prototype: MakeGraphTableAndKeyClause;
    }
    var MakeGraphTableAndKeyClause: MakeGraphTableAndKeyClauseFunc;

    interface ScanAssignment extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Name: Kusto.Language.Syntax.NameReference | null;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ScanAssignmentFunc extends Function {
        prototype: ScanAssignment;
    }
    var ScanAssignment: ScanAssignmentFunc;

    interface CommandWithClause extends Kusto.Language.Syntax.Clause {
    }
    interface CommandWithClauseFunc extends Function {
        prototype: CommandWithClause;
    }
    var CommandWithClause: CommandWithClauseFunc;

    /**
     * A node in the Kusto syntax that represents a named expression.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.NamedExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface NamedExpression extends Kusto.Language.Syntax.Expression {
    }
    interface NamedExpressionFunc extends Function {
        prototype: NamedExpression;
    }
    var NamedExpression: NamedExpressionFunc;

    /**
     * A node in the kusto syntax that name expression.
     *
     * @public
     * @class Kusto.Language.Syntax.CompoundStringLiteralExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface CompoundStringLiteralExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * One or more tokens that comprise the string literal value.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.CompoundStringLiteralExpression
         * @function Tokens
         * @type Kusto.Language.Syntax.SyntaxList$1
         */
        Tokens: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SyntaxToken> | null;
        ChildCount: number;
        IsLiteral: boolean;
        LiteralValueInfo: Kusto.Language.Syntax.ValueInfo | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface CompoundStringLiteralExpressionFunc extends Function {
        prototype: CompoundStringLiteralExpression;
    }
    var CompoundStringLiteralExpression: CompoundStringLiteralExpressionFunc;

    interface ContextualDataTableExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ContextualDataTableKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Id: Kusto.Language.Syntax.Expression | null;
        Schema: Kusto.Language.Syntax.RowSchema | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ContextualDataTableExpressionFunc extends Function {
        prototype: ContextualDataTableExpression;
    }
    var ContextualDataTableExpression: ContextualDataTableExpressionFunc;

    interface CountAsIdentifierClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        AsKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Identifier: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface CountAsIdentifierClauseFunc extends Function {
        prototype: CountAsIdentifierClause;
    }
    var CountAsIdentifierClause: CountAsIdentifierClauseFunc;

    interface DataScopeClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DataScopeKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        Value: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface DataScopeClauseFunc extends Function {
        prototype: DataScopeClause;
    }
    var DataScopeClause: DataScopeClauseFunc;

    interface DataScopeExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Expression: Kusto.Language.Syntax.Expression | null;
        DataScopeClause: Kusto.Language.Syntax.DataScopeClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface DataScopeExpressionFunc extends Function {
        prototype: DataScopeExpression;
    }
    var DataScopeExpression: DataScopeExpressionFunc;

    interface DataTableExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DataTableKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Schema: Kusto.Language.Syntax.RowSchema | null;
        OpenBracket: Kusto.Language.Syntax.SyntaxToken | null;
        LeadingComma: Kusto.Language.Syntax.SyntaxToken | null;
        Values: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        CloseBracket: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface DataTableExpressionFunc extends Function {
        prototype: DataTableExpression;
    }
    var DataTableExpression: DataTableExpressionFunc;

    /**
     * datetime pattern expression in Inline External Table path format.
     *
     * @public
     * @class Kusto.Language.Syntax.DateTimePattern
     * @augments Kusto.Language.Syntax.Expression
     */
    interface DateTimePattern extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DateTimePatternKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        StringLiteral: Kusto.Language.Syntax.LiteralExpression | null;
        Comma: Kusto.Language.Syntax.SyntaxToken | null;
        PartitionColumn: Kusto.Language.Syntax.NameReference | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface DateTimePatternFunc extends Function {
        prototype: DateTimePattern;
    }
    var DateTimePattern: DateTimePatternFunc;

    interface DefaultExpressionClause extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DefaultKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface DefaultExpressionClauseFunc extends Function {
        prototype: DefaultExpressionClause;
    }
    var DefaultExpressionClause: DefaultExpressionClauseFunc;

    interface RowSchema extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        LeadingComma: Kusto.Language.Syntax.SyntaxToken | null;
        Columns: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NameAndTypeDeclaration>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface RowSchemaFunc extends Function {
        prototype: RowSchema;
    }
    var RowSchema: RowSchemaFunc;

    interface ElementExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Expression: Kusto.Language.Syntax.Expression | null;
        Selector: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ElementExpressionFunc extends Function {
        prototype: ElementExpression;
    }
    var ElementExpression: ElementExpressionFunc;

    interface EntityGroup extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        EntityGroupKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenBracket: Kusto.Language.Syntax.SyntaxToken | null;
        Entities: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        CloseBracket: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface EntityGroupFunc extends Function {
        prototype: EntityGroup;
    }
    var EntityGroup: EntityGroupFunc;

    interface ExpressionStatement extends Kusto.Language.Syntax.Statement {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ExpressionStatementFunc extends Function {
        prototype: ExpressionStatement;
    }
    var ExpressionStatement: ExpressionStatementFunc;

    interface ExternalDataExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ExternalDataKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.NamedParameter> | null;
        Schema: Kusto.Language.Syntax.RowSchema | null;
        OpenBracket: Kusto.Language.Syntax.SyntaxToken | null;
        URIs: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        CloseBracket: Kusto.Language.Syntax.SyntaxToken | null;
        WithClause: Kusto.Language.Syntax.ExternalDataWithClause | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ExternalDataExpressionFunc extends Function {
        prototype: ExternalDataExpression;
    }
    var ExternalDataExpression: ExternalDataExpressionFunc;

    interface ExternalDataWithClause extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WithKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Properties: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.NamedParameter>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ExternalDataWithClauseFunc extends Function {
        prototype: ExternalDataWithClause;
    }
    var ExternalDataWithClause: ExternalDataWithClauseFunc;

    interface FacetWithClause extends Kusto.Language.Syntax.Clause {
    }
    interface FacetWithClauseFunc extends Function {
        prototype: FacetWithClause;
    }
    var FacetWithClause: FacetWithClauseFunc;

    interface FindInClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        InKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FindInClauseFunc extends Function {
        prototype: FindInClause;
    }
    var FindInClause: FindInClauseFunc;

    interface FindProjectClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ProjectKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Columns: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FindProjectClauseFunc extends Function {
        prototype: FindProjectClause;
    }
    var FindProjectClause: FindProjectClauseFunc;

    interface ForkExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        NameEquals: Kusto.Language.Syntax.NameEqualsClause | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ForkExpressionFunc extends Function {
        prototype: ForkExpression;
    }
    var ForkExpression: ForkExpressionFunc;

    /**
     * A node in the kusto syntax that represents a function call expression.
     *
     * @public
     * @class Kusto.Language.Syntax.FunctionCallExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface FunctionCallExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The name of the function call.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.FunctionCallExpression
         * @function Name
         * @type Kusto.Language.Syntax.NameReference
         */
        Name: Kusto.Language.Syntax.NameReference | null;
        /**
         * The arguments
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.FunctionCallExpression
         * @function ArgumentList
         * @type Kusto.Language.Syntax.ExpressionList
         */
        ArgumentList: Kusto.Language.Syntax.ExpressionList | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FunctionCallExpressionFunc extends Function {
        prototype: FunctionCallExpression;
    }
    var FunctionCallExpression: FunctionCallExpressionFunc;

    interface FunctionDeclaration extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ViewKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Parameters: Kusto.Language.Syntax.FunctionParameters | null;
        Body: Kusto.Language.Syntax.FunctionBody | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface FunctionDeclarationFunc extends Function {
        prototype: FunctionDeclaration;
    }
    var FunctionDeclaration: FunctionDeclarationFunc;

    interface GraphMatchPatternEdge extends Kusto.Language.Syntax.GraphMatchPatternNotation {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        FirstToken: Kusto.Language.Syntax.SyntaxToken | null;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        Range: Kusto.Language.Syntax.GraphMatchPatternEdgeRange | null;
        LastToken: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphMatchPatternEdgeFunc extends Function {
        prototype: GraphMatchPatternEdge;
    }
    var GraphMatchPatternEdge: GraphMatchPatternEdgeFunc;

    interface GraphMatchPatternNode extends Kusto.Language.Syntax.GraphMatchPatternNotation {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Open: Kusto.Language.Syntax.SyntaxToken | null;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        Close: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphMatchPatternNodeFunc extends Function {
        prototype: GraphMatchPatternNode;
    }
    var GraphMatchPatternNode: GraphMatchPatternNodeFunc;

    interface GraphToTableAsClause extends Kusto.Language.Syntax.Clause {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        AsKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface GraphToTableAsClauseFunc extends Function {
        prototype: GraphToTableAsClause;
    }
    var GraphToTableAsClause: GraphToTableAsClauseFunc;

    interface BracketedWildcardedName extends Kusto.Language.Syntax.Name {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The open bracket token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.BracketedWildcardedName
         * @function OpenBracket
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        OpenBracket: Kusto.Language.Syntax.SyntaxToken | null;
        Pattern: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The close bracket token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.BracketedWildcardedName
         * @function CloseBracket
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        CloseBracket: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        SimpleName: string | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface BracketedWildcardedNameFunc extends Function {
        prototype: BracketedWildcardedName;
    }
    var BracketedWildcardedName: BracketedWildcardedNameFunc;

    /**
     * A node in the kusto syntax that represents a bracketed name.
     *
     * @public
     * @class Kusto.Language.Syntax.BracketedName
     * @augments Kusto.Language.Syntax.Name
     */
    interface BracketedName extends Kusto.Language.Syntax.Name {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The open bracket token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.BracketedName
         * @function OpenBracket
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        OpenBracket: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The string literal expression that comprises the name.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.BracketedName
         * @function Name
         * @type Kusto.Language.Syntax.Expression
         */
        Name: Kusto.Language.Syntax.Expression | null;
        /**
         * The close bracket token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.BracketedName
         * @function CloseBracket
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        CloseBracket: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        SimpleName: string | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface BracketedNameFunc extends Function {
        prototype: BracketedName;
    }
    var BracketedName: BracketedNameFunc;

    /**
     * A node in the kusto syntax that represents a dynamic expression.
     *
     * @public
     * @class Kusto.Language.Syntax.DynamicExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface DynamicExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The dynamic keyword.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.DynamicExpression
         * @function Dynamic
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Dynamic: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The open bracket token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.DynamicExpression
         * @function OpenParen
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The body of the dynamic expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.DynamicExpression
         * @function Expression
         * @type Kusto.Language.Syntax.Expression
         */
        Expression: Kusto.Language.Syntax.Expression | null;
        /**
         * The close bracket token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.DynamicExpression
         * @function CloseParen
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        IsLiteral: boolean;
        LiteralValueInfo: Kusto.Language.Syntax.ValueInfo | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface DynamicExpressionFunc extends Function {
        prototype: DynamicExpression;
    }
    var DynamicExpression: DynamicExpressionFunc;

    /**
     * A node in the kusto syntax that represents a client parameter.
     *
     * @public
     * @class Kusto.Language.Syntax.BracedName
     * @augments Kusto.Language.Syntax.Name
     */
    interface BracedName extends Kusto.Language.Syntax.Name {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenBrace: Kusto.Language.Syntax.SyntaxToken | null;
        Name: Kusto.Language.Syntax.SyntaxToken | null;
        CloseBrace: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        SimpleName: string | null;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface BracedNameFunc extends Function {
        prototype: BracedName;
    }
    var BracedName: BracedNameFunc;

    interface ScanComputationClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ArrowToken: Kusto.Language.Syntax.SyntaxToken | null;
        Assignments: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.ScanAssignment>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ScanComputationClauseFunc extends Function {
        prototype: ScanComputationClause;
    }
    var ScanComputationClause: ScanComputationClauseFunc;

    interface BracketedExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OpenBracket: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        CloseBracket: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface BracketedExpressionFunc extends Function {
        prototype: BracketedExpression;
    }
    var BracketedExpression: BracketedExpressionFunc;

    interface ScanDeclareClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DeclareKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        OpenParen: Kusto.Language.Syntax.SyntaxToken | null;
        Declarations: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.FunctionParameter>> | null;
        CloseParen: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ScanDeclareClauseFunc extends Function {
        prototype: ScanDeclareClause;
    }
    var ScanDeclareClause: ScanDeclareClauseFunc;

    interface ScanOrderByClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OrderKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ScanOrderByClauseFunc extends Function {
        prototype: ScanOrderByClause;
    }
    var ScanOrderByClause: ScanOrderByClauseFunc;

    interface ScanPartitionByClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        PartitionKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ByKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Expressions: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SeparatedElement$1<Kusto.Language.Syntax.Expression>> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ScanPartitionByClauseFunc extends Function {
        prototype: ScanPartitionByClause;
    }
    var ScanPartitionByClause: ScanPartitionByClauseFunc;

    interface ScanStep extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        StepKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        OptionalKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        ScanStepOutput: Kusto.Language.Syntax.ScanStepOutput | null;
        ColonToken: Kusto.Language.Syntax.SyntaxToken | null;
        Condition: Kusto.Language.Syntax.Expression | null;
        ComputationClause: Kusto.Language.Syntax.ScanComputationClause | null;
        SemicolonToken: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        IsOptional(index: number): boolean;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ScanStepFunc extends Function {
        prototype: ScanStep;
    }
    var ScanStep: ScanStepFunc;

    interface ScanStepOutput extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        OutputKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        EqualToken: Kusto.Language.Syntax.SyntaxToken | null;
        OutputKind: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ScanStepOutputFunc extends Function {
        prototype: ScanStepOutput;
    }
    var ScanStepOutput: ScanStepOutputFunc;

    interface SeparatedElement extends Kusto.Language.Syntax.SyntaxNode {
        /**
         * The element in a list
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.SeparatedElement
         * @function Element
         * @type Kusto.Language.Syntax.SyntaxElement
         */
        Element: Kusto.Language.Syntax.SyntaxElement | null;
        /**
         * An optional separator token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.SeparatedElement
         * @function Separator
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Separator: Kusto.Language.Syntax.SyntaxToken | null;
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetCompletionHint(index: number): Kusto.Language.Editor.CompletionHint;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SeparatedElementFunc extends Function {
        prototype: SeparatedElement;
    }
    var SeparatedElement: SeparatedElementFunc;

    interface SkippedTokens extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        Tokens: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SyntaxToken> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SkippedTokensFunc extends Function {
        prototype: SkippedTokens;
    }
    var SkippedTokens: SkippedTokensFunc;

    /**
     * A list of {@link }'s.
     *
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.SyntaxList
     * @augments Kusto.Language.Syntax.SyntaxNode
     */
    interface SyntaxList extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ElementType: System.Type | null;
        /**
         * Gets the element at the index.
         *
         * @instance
         * @public
         * @this Kusto.Language.Syntax.SyntaxList
         * @memberof Kusto.Language.Syntax.SyntaxList
         * @param   {number}                                 index
         * @return  {Kusto.Language.Syntax.SyntaxElement}
         */
        getItem(index: number): Kusto.Language.Syntax.SyntaxElement;
        /**
         * The number of elements in the list.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxList
         * @function Count
         * @type number
         */
        Count: number;
        /**
         * The number of child elements this element has.
         *
         * @instance
         * @public
         * @override
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxList
         * @function ChildCount
         * @type number
         */
        ChildCount: number;
        GetEnumerator(): System.Collections.Generic.IEnumerator$1<Kusto.Language.Syntax.SyntaxElement> | null;
        /**
         * Get the child of this element at the specified index.
         *
         * @instance
         * @public
         * @override
         * @this Kusto.Language.Syntax.SyntaxList
         * @memberof Kusto.Language.Syntax.SyntaxList
         * @param   {number}                                 index
         * @return  {Kusto.Language.Syntax.SyntaxElement}
         */
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface SyntaxListFunc extends Function {
        prototype: SyntaxList;
    }
    var SyntaxList: SyntaxListFunc;

    interface SyntaxNodeExtensions {
    }
    interface SyntaxNodeExtensionsFunc extends Function {
        prototype: SyntaxNodeExtensions;
        new (): SyntaxNodeExtensions;
        /**
         * Copies this node as the root of a separate syntax tree fragment.
         *
         * @static
         * @public
         * @this Kusto.Language.Syntax.SyntaxNodeExtensions
         * @memberof Kusto.Language.Syntax.SyntaxNodeExtensions
         * @param   {Function}    T       
         * @param   {T}           node
         * @return  {T}
         */
        CopyAsFragment<T>(T: {prototype: T}, node: T | null): T | null;
    }
    var SyntaxNodeExtensions: SyntaxNodeExtensionsFunc;

    interface UnknownCommand extends Kusto.Language.Syntax.Command {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        DotToken: Kusto.Language.Syntax.SyntaxToken | null;
        Parts: Kusto.Language.Syntax.SyntaxList$1<Kusto.Language.Syntax.SyntaxElement> | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface UnknownCommandFunc extends Function {
        prototype: UnknownCommand;
    }
    var UnknownCommand: UnknownCommandFunc;

    interface ToTypeOfClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        ToKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        TypeOf: Kusto.Language.Syntax.TypeOfLiteralExpression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface ToTypeOfClauseFunc extends Function {
        prototype: ToTypeOfClause;
    }
    var ToTypeOfClause: ToTypeOfClauseFunc;

    /**
     * A node in the kusto syntax that represents a between expression.
     *
     * @public
     * @class Kusto.Language.Syntax.BetweenExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface BetweenExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The left side expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.BetweenExpression
         * @function Left
         * @type Kusto.Language.Syntax.Expression
         */
        Left: Kusto.Language.Syntax.Expression | null;
        /**
         * The between or !between keyword.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.BetweenExpression
         * @function Operator
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Operator: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The list of expressions.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.BetweenExpression
         * @function Right
         * @type Kusto.Language.Syntax.ExpressionCouple
         */
        Right: Kusto.Language.Syntax.ExpressionCouple | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface BetweenExpressionFunc extends Function {
        prototype: BetweenExpression;
    }
    var BetweenExpression: BetweenExpressionFunc;

    interface Command extends Kusto.Language.Syntax.Expression {
    }
    interface CommandFunc extends Function {
        prototype: Command;
    }
    var Command: CommandFunc;

    /**
     * A node in the kusto syntax that represents an expression comprised of a single token.
     *
     * @public
     * @class Kusto.Language.Syntax.AtExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface AtExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.AtExpression
         * @function AtToken
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        AtToken: Kusto.Language.Syntax.SyntaxToken | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface AtExpressionFunc extends Function {
        prototype: AtExpression;
    }
    var AtExpression: AtExpressionFunc;

    /**
     * A node in the Kusto syntax that represents a query operator
     *
     * @abstract
     * @public
     * @class Kusto.Language.Syntax.QueryOperator
     * @augments Kusto.Language.Syntax.Expression
     */
    interface QueryOperator extends Kusto.Language.Syntax.Expression {
    }
    interface QueryOperatorFunc extends Function {
        prototype: QueryOperator;
    }
    var QueryOperator: QueryOperatorFunc;

    interface SyntaxVisitor {
        VisitDirectiveBlock(node: Kusto.Language.Syntax.DirectiveBlock | null): void;
        VisitDirective(node: Kusto.Language.Syntax.Directive | null): void;
        VisitSkippedTokens(node: Kusto.Language.Syntax.SkippedTokens | null): void;
        VisitQueryBlock(node: Kusto.Language.Syntax.QueryBlock | null): void;
        VisitTypeOfLiteralExpression(node: Kusto.Language.Syntax.TypeOfLiteralExpression | null): void;
        VisitBadQueryOperator(node: Kusto.Language.Syntax.BadQueryOperator | null): void;
        VisitCompoundStringLiteralExpression(node: Kusto.Language.Syntax.CompoundStringLiteralExpression | null): void;
        VisitTokenName(node: Kusto.Language.Syntax.TokenName | null): void;
        VisitBracketedName(node: Kusto.Language.Syntax.BracketedName | null): void;
        VisitBracedName(node: Kusto.Language.Syntax.BracedName | null): void;
        VisitWildcardedName(node: Kusto.Language.Syntax.WildcardedName | null): void;
        VisitBracketedWildcardedName(node: Kusto.Language.Syntax.BracketedWildcardedName | null): void;
        VisitNameDeclaration(node: Kusto.Language.Syntax.NameDeclaration | null): void;
        VisitNameReference(node: Kusto.Language.Syntax.NameReference | null): void;
        VisitLiteralExpression(node: Kusto.Language.Syntax.LiteralExpression | null): void;
        VisitStarExpression(node: Kusto.Language.Syntax.StarExpression | null): void;
        VisitAtExpression(node: Kusto.Language.Syntax.AtExpression | null): void;
        VisitJsonPair(node: Kusto.Language.Syntax.JsonPair | null): void;
        VisitJsonObjectExpression(node: Kusto.Language.Syntax.JsonObjectExpression | null): void;
        VisitJsonArrayExpression(node: Kusto.Language.Syntax.JsonArrayExpression | null): void;
        VisitDynamicExpression(node: Kusto.Language.Syntax.DynamicExpression | null): void;
        VisitParenthesizedExpression(node: Kusto.Language.Syntax.ParenthesizedExpression | null): void;
        VisitExpressionList(node: Kusto.Language.Syntax.ExpressionList | null): void;
        VisitExpressionCouple(node: Kusto.Language.Syntax.ExpressionCouple | null): void;
        VisitPrefixUnaryExpression(node: Kusto.Language.Syntax.PrefixUnaryExpression | null): void;
        VisitBinaryExpression(node: Kusto.Language.Syntax.BinaryExpression | null): void;
        VisitInExpression(node: Kusto.Language.Syntax.InExpression | null): void;
        VisitHasAnyExpression(node: Kusto.Language.Syntax.HasAnyExpression | null): void;
        VisitHasAllExpression(node: Kusto.Language.Syntax.HasAllExpression | null): void;
        VisitBetweenExpression(node: Kusto.Language.Syntax.BetweenExpression | null): void;
        VisitFunctionCallExpression(node: Kusto.Language.Syntax.FunctionCallExpression | null): void;
        VisitToScalarExpression(node: Kusto.Language.Syntax.ToScalarExpression | null): void;
        VisitToTableExpression(node: Kusto.Language.Syntax.ToTableExpression | null): void;
        VisitMaterializedViewCombineExpression(node: Kusto.Language.Syntax.MaterializedViewCombineExpression | null): void;
        VisitMaterializedViewCombineNameClause(node: Kusto.Language.Syntax.MaterializedViewCombineNameClause | null): void;
        VisitMaterializedViewCombineClause(node: Kusto.Language.Syntax.MaterializedViewCombineClause | null): void;
        VisitSimpleNamedExpression(node: Kusto.Language.Syntax.SimpleNamedExpression | null): void;
        VisitRenameList(node: Kusto.Language.Syntax.RenameList | null): void;
        VisitCompoundNamedExpression(node: Kusto.Language.Syntax.CompoundNamedExpression | null): void;
        VisitBracketedExpression(node: Kusto.Language.Syntax.BracketedExpression | null): void;
        VisitPathExpression(node: Kusto.Language.Syntax.PathExpression | null): void;
        VisitElementExpression(node: Kusto.Language.Syntax.ElementExpression | null): void;
        VisitPipeExpression(node: Kusto.Language.Syntax.PipeExpression | null): void;
        VisitRangeOperator(node: Kusto.Language.Syntax.RangeOperator | null): void;
        VisitNamedParameter(node: Kusto.Language.Syntax.NamedParameter | null): void;
        VisitConsumeOperator(node: Kusto.Language.Syntax.ConsumeOperator | null): void;
        VisitCountOperator(node: Kusto.Language.Syntax.CountOperator | null): void;
        VisitCountAsIdentifierClause(node: Kusto.Language.Syntax.CountAsIdentifierClause | null): void;
        VisitExecuteAndCacheOperator(node: Kusto.Language.Syntax.ExecuteAndCacheOperator | null): void;
        VisitExtendOperator(node: Kusto.Language.Syntax.ExtendOperator | null): void;
        VisitFacetOperator(node: Kusto.Language.Syntax.FacetOperator | null): void;
        VisitFacetWithOperatorClause(node: Kusto.Language.Syntax.FacetWithOperatorClause | null): void;
        VisitFacetWithExpressionClause(node: Kusto.Language.Syntax.FacetWithExpressionClause | null): void;
        VisitFilterOperator(node: Kusto.Language.Syntax.FilterOperator | null): void;
        VisitGetSchemaOperator(node: Kusto.Language.Syntax.GetSchemaOperator | null): void;
        VisitFindOperator(node: Kusto.Language.Syntax.FindOperator | null): void;
        VisitDataScopeClause(node: Kusto.Language.Syntax.DataScopeClause | null): void;
        VisitTypedColumnReference(node: Kusto.Language.Syntax.TypedColumnReference | null): void;
        VisitFindInClause(node: Kusto.Language.Syntax.FindInClause | null): void;
        VisitFindProjectClause(node: Kusto.Language.Syntax.FindProjectClause | null): void;
        VisitPackExpression(node: Kusto.Language.Syntax.PackExpression | null): void;
        VisitNameAndTypeDeclaration(node: Kusto.Language.Syntax.NameAndTypeDeclaration | null): void;
        VisitPrimitiveTypeExpression(node: Kusto.Language.Syntax.PrimitiveTypeExpression | null): void;
        VisitSearchOperator(node: Kusto.Language.Syntax.SearchOperator | null): void;
        VisitForkOperator(node: Kusto.Language.Syntax.ForkOperator | null): void;
        VisitNameEqualsClause(node: Kusto.Language.Syntax.NameEqualsClause | null): void;
        VisitForkExpression(node: Kusto.Language.Syntax.ForkExpression | null): void;
        VisitMakeSeriesOperator(node: Kusto.Language.Syntax.MakeSeriesOperator | null): void;
        VisitMakeSeriesExpression(node: Kusto.Language.Syntax.MakeSeriesExpression | null): void;
        VisitDefaultExpressionClause(node: Kusto.Language.Syntax.DefaultExpressionClause | null): void;
        VisitMakeSeriesOnClause(node: Kusto.Language.Syntax.MakeSeriesOnClause | null): void;
        VisitMakeSeriesFromClause(node: Kusto.Language.Syntax.MakeSeriesFromClause | null): void;
        VisitMakeSeriesToClause(node: Kusto.Language.Syntax.MakeSeriesToClause | null): void;
        VisitMakeSeriesStepClause(node: Kusto.Language.Syntax.MakeSeriesStepClause | null): void;
        VisitMakeSeriesInRangeClause(node: Kusto.Language.Syntax.MakeSeriesInRangeClause | null): void;
        VisitMakeSeriesFromToStepClause(node: Kusto.Language.Syntax.MakeSeriesFromToStepClause | null): void;
        VisitMakeSeriesByClause(node: Kusto.Language.Syntax.MakeSeriesByClause | null): void;
        VisitMvExpandOperator(node: Kusto.Language.Syntax.MvExpandOperator | null): void;
        VisitMvExpandExpression(node: Kusto.Language.Syntax.MvExpandExpression | null): void;
        VisitMvExpandRowLimitClause(node: Kusto.Language.Syntax.MvExpandRowLimitClause | null): void;
        VisitMvApplyOperator(node: Kusto.Language.Syntax.MvApplyOperator | null): void;
        VisitMvApplyExpression(node: Kusto.Language.Syntax.MvApplyExpression | null): void;
        VisitMvApplyRowLimitClause(node: Kusto.Language.Syntax.MvApplyRowLimitClause | null): void;
        VisitMvApplyContextIdClause(node: Kusto.Language.Syntax.MvApplyContextIdClause | null): void;
        VisitMvApplySubqueryExpression(node: Kusto.Language.Syntax.MvApplySubqueryExpression | null): void;
        VisitToTypeOfClause(node: Kusto.Language.Syntax.ToTypeOfClause | null): void;
        VisitEvaluateSchemaClause(node: Kusto.Language.Syntax.EvaluateSchemaClause | null): void;
        VisitEvaluateOperator(node: Kusto.Language.Syntax.EvaluateOperator | null): void;
        VisitParseOperator(node: Kusto.Language.Syntax.ParseOperator | null): void;
        VisitParseWhereOperator(node: Kusto.Language.Syntax.ParseWhereOperator | null): void;
        VisitParseKvWithClause(node: Kusto.Language.Syntax.ParseKvWithClause | null): void;
        VisitParseKvOperator(node: Kusto.Language.Syntax.ParseKvOperator | null): void;
        VisitPartitionOperator(node: Kusto.Language.Syntax.PartitionOperator | null): void;
        VisitPartitionQuery(node: Kusto.Language.Syntax.PartitionQuery | null): void;
        VisitPartitionScope(node: Kusto.Language.Syntax.PartitionScope | null): void;
        VisitPartitionSubquery(node: Kusto.Language.Syntax.PartitionSubquery | null): void;
        VisitProjectOperator(node: Kusto.Language.Syntax.ProjectOperator | null): void;
        VisitProjectAwayOperator(node: Kusto.Language.Syntax.ProjectAwayOperator | null): void;
        VisitProjectByNamesOperator(node: Kusto.Language.Syntax.ProjectByNamesOperator | null): void;
        VisitProjectKeepOperator(node: Kusto.Language.Syntax.ProjectKeepOperator | null): void;
        VisitProjectRenameOperator(node: Kusto.Language.Syntax.ProjectRenameOperator | null): void;
        VisitProjectReorderOperator(node: Kusto.Language.Syntax.ProjectReorderOperator | null): void;
        VisitSampleOperator(node: Kusto.Language.Syntax.SampleOperator | null): void;
        VisitSampleDistinctOperator(node: Kusto.Language.Syntax.SampleDistinctOperator | null): void;
        VisitEntityGroup(node: Kusto.Language.Syntax.EntityGroup | null): void;
        VisitReduceByOperator(node: Kusto.Language.Syntax.ReduceByOperator | null): void;
        VisitReduceByWithClause(node: Kusto.Language.Syntax.ReduceByWithClause | null): void;
        VisitSummarizeOperator(node: Kusto.Language.Syntax.SummarizeOperator | null): void;
        VisitMacroExpandScopeReferenceName(node: Kusto.Language.Syntax.MacroExpandScopeReferenceName | null): void;
        VisitMacroExpandOperator(node: Kusto.Language.Syntax.MacroExpandOperator | null): void;
        VisitSummarizeByClause(node: Kusto.Language.Syntax.SummarizeByClause | null): void;
        VisitDistinctOperator(node: Kusto.Language.Syntax.DistinctOperator | null): void;
        VisitTakeOperator(node: Kusto.Language.Syntax.TakeOperator | null): void;
        VisitSortOperator(node: Kusto.Language.Syntax.SortOperator | null): void;
        VisitOrderedExpression(node: Kusto.Language.Syntax.OrderedExpression | null): void;
        VisitOrderingClause(node: Kusto.Language.Syntax.OrderingClause | null): void;
        VisitOrderingNullsClause(node: Kusto.Language.Syntax.OrderingNullsClause | null): void;
        VisitTopHittersOperator(node: Kusto.Language.Syntax.TopHittersOperator | null): void;
        VisitTopHittersByClause(node: Kusto.Language.Syntax.TopHittersByClause | null): void;
        VisitTopOperator(node: Kusto.Language.Syntax.TopOperator | null): void;
        VisitTopNestedOperator(node: Kusto.Language.Syntax.TopNestedOperator | null): void;
        VisitTopNestedClause(node: Kusto.Language.Syntax.TopNestedClause | null): void;
        VisitTopNestedWithOthersClause(node: Kusto.Language.Syntax.TopNestedWithOthersClause | null): void;
        VisitUnionOperator(node: Kusto.Language.Syntax.UnionOperator | null): void;
        VisitAsOperator(node: Kusto.Language.Syntax.AsOperator | null): void;
        VisitSerializeOperator(node: Kusto.Language.Syntax.SerializeOperator | null): void;
        VisitInvokeOperator(node: Kusto.Language.Syntax.InvokeOperator | null): void;
        VisitRenderOperator(node: Kusto.Language.Syntax.RenderOperator | null): void;
        VisitMakeGraphOperator(node: Kusto.Language.Syntax.MakeGraphOperator | null): void;
        VisitMakeGraphWithTablesAndKeysClause(node: Kusto.Language.Syntax.MakeGraphWithTablesAndKeysClause | null): void;
        VisitMakeGraphWithImplicitIdClause(node: Kusto.Language.Syntax.MakeGraphWithImplicitIdClause | null): void;
        VisitGraphMarkComponentsOperator(node: Kusto.Language.Syntax.GraphMarkComponentsOperator | null): void;
        VisitGraphWhereNodesOperator(node: Kusto.Language.Syntax.GraphWhereNodesOperator | null): void;
        VisitGraphWhereEdgesOperator(node: Kusto.Language.Syntax.GraphWhereEdgesOperator | null): void;
        VisitMakeGraphTableAndKeyClause(node: Kusto.Language.Syntax.MakeGraphTableAndKeyClause | null): void;
        VisitMakeGraphPartitionedByClause(node: Kusto.Language.Syntax.MakeGraphPartitionedByClause | null): void;
        VisitGraphToTableOperator(node: Kusto.Language.Syntax.GraphToTableOperator | null): void;
        VisitGraphToTableOutputClause(node: Kusto.Language.Syntax.GraphToTableOutputClause | null): void;
        VisitGraphToTableAsClause(node: Kusto.Language.Syntax.GraphToTableAsClause | null): void;
        VisitGraphMatchOperator(node: Kusto.Language.Syntax.GraphMatchOperator | null): void;
        VisitGraphShortestPathsOperator(node: Kusto.Language.Syntax.GraphShortestPathsOperator | null): void;
        VisitGraphMatchPattern(node: Kusto.Language.Syntax.GraphMatchPattern | null): void;
        VisitGraphMatchPatternNode(node: Kusto.Language.Syntax.GraphMatchPatternNode | null): void;
        VisitGraphMatchPatternEdge(node: Kusto.Language.Syntax.GraphMatchPatternEdge | null): void;
        VisitGraphMatchPatternEdgeRange(node: Kusto.Language.Syntax.GraphMatchPatternEdgeRange | null): void;
        VisitWhereClause(node: Kusto.Language.Syntax.WhereClause | null): void;
        VisitProjectClause(node: Kusto.Language.Syntax.ProjectClause | null): void;
        VisitNameReferenceList(node: Kusto.Language.Syntax.NameReferenceList | null): void;
        VisitRenderWithClause(node: Kusto.Language.Syntax.RenderWithClause | null): void;
        VisitPrintOperator(node: Kusto.Language.Syntax.PrintOperator | null): void;
        VisitAliasStatement(node: Kusto.Language.Syntax.AliasStatement | null): void;
        VisitLetStatement(node: Kusto.Language.Syntax.LetStatement | null): void;
        VisitFunctionDeclaration(node: Kusto.Language.Syntax.FunctionDeclaration | null): void;
        VisitFunctionParameters(node: Kusto.Language.Syntax.FunctionParameters | null): void;
        VisitFunctionParameter(node: Kusto.Language.Syntax.FunctionParameter | null): void;
        VisitDefaultValueDeclaration(node: Kusto.Language.Syntax.DefaultValueDeclaration | null): void;
        VisitFunctionBody(node: Kusto.Language.Syntax.FunctionBody | null): void;
        VisitSchemaTypeExpression(node: Kusto.Language.Syntax.SchemaTypeExpression | null): void;
        VisitExpressionStatement(node: Kusto.Language.Syntax.ExpressionStatement | null): void;
        VisitMaterializeExpression(node: Kusto.Language.Syntax.MaterializeExpression | null): void;
        VisitSetOptionStatement(node: Kusto.Language.Syntax.SetOptionStatement | null): void;
        VisitOptionValueClause(node: Kusto.Language.Syntax.OptionValueClause | null): void;
        VisitQueryParametersStatement(node: Kusto.Language.Syntax.QueryParametersStatement | null): void;
        VisitRestrictStatementWithClause(node: Kusto.Language.Syntax.RestrictStatementWithClause | null): void;
        VisitRestrictStatement(node: Kusto.Language.Syntax.RestrictStatement | null): void;
        VisitPatternStatement(node: Kusto.Language.Syntax.PatternStatement | null): void;
        VisitPatternDeclaration(node: Kusto.Language.Syntax.PatternDeclaration | null): void;
        VisitPatternPathParameter(node: Kusto.Language.Syntax.PatternPathParameter | null): void;
        VisitPatternMatch(node: Kusto.Language.Syntax.PatternMatch | null): void;
        VisitPatternPathValue(node: Kusto.Language.Syntax.PatternPathValue | null): void;
        VisitDataScopeExpression(node: Kusto.Language.Syntax.DataScopeExpression | null): void;
        VisitDataTableExpression(node: Kusto.Language.Syntax.DataTableExpression | null): void;
        VisitRowSchema(node: Kusto.Language.Syntax.RowSchema | null): void;
        VisitEvaluateRowSchema(node: Kusto.Language.Syntax.EvaluateRowSchema | null): void;
        VisitExternalDataExpression(node: Kusto.Language.Syntax.ExternalDataExpression | null): void;
        VisitContextualDataTableExpression(node: Kusto.Language.Syntax.ContextualDataTableExpression | null): void;
        VisitExternalDataWithClause(node: Kusto.Language.Syntax.ExternalDataWithClause | null): void;
        VisitInlineExternalTableKindClause(node: Kusto.Language.Syntax.InlineExternalTableKindClause | null): void;
        VisitInlineExternalTableDataFormatClause(node: Kusto.Language.Syntax.InlineExternalTableDataFormatClause | null): void;
        VisitDateTimePattern(node: Kusto.Language.Syntax.DateTimePattern | null): void;
        VisitInlineExternalTablePathFormatPartitionColumnReference(node: Kusto.Language.Syntax.InlineExternalTablePathFormatPartitionColumnReference | null): void;
        VisitInlineExternalTablePathFormatClause(node: Kusto.Language.Syntax.InlineExternalTablePathFormatClause | null): void;
        VisitPartitionColumnDeclaration(node: Kusto.Language.Syntax.PartitionColumnDeclaration | null): void;
        VisitInlineExternalTablePartitionClause(node: Kusto.Language.Syntax.InlineExternalTablePartitionClause | null): void;
        VisitInlineExternalTableConnectionStringsClause(node: Kusto.Language.Syntax.InlineExternalTableConnectionStringsClause | null): void;
        VisitInlineExternalTableExpression(node: Kusto.Language.Syntax.InlineExternalTableExpression | null): void;
        VisitJoinOperator(node: Kusto.Language.Syntax.JoinOperator | null): void;
        VisitLookupOperator(node: Kusto.Language.Syntax.LookupOperator | null): void;
        VisitJoinOnClause(node: Kusto.Language.Syntax.JoinOnClause | null): void;
        VisitJoinWhereClause(node: Kusto.Language.Syntax.JoinWhereClause | null): void;
        VisitScanOperator(node: Kusto.Language.Syntax.ScanOperator | null): void;
        VisitAssertSchemaOperator(node: Kusto.Language.Syntax.AssertSchemaOperator | null): void;
        VisitScanDeclareClause(node: Kusto.Language.Syntax.ScanDeclareClause | null): void;
        VisitScanOrderByClause(node: Kusto.Language.Syntax.ScanOrderByClause | null): void;
        VisitScanPartitionByClause(node: Kusto.Language.Syntax.ScanPartitionByClause | null): void;
        VisitScanStepOutput(node: Kusto.Language.Syntax.ScanStepOutput | null): void;
        VisitScanStep(node: Kusto.Language.Syntax.ScanStep | null): void;
        VisitScanComputationClause(node: Kusto.Language.Syntax.ScanComputationClause | null): void;
        VisitScanAssignment(node: Kusto.Language.Syntax.ScanAssignment | null): void;
        VisitPartitionByOperator(node: Kusto.Language.Syntax.PartitionByOperator | null): void;
        VisitPartitionByIdClause(node: Kusto.Language.Syntax.PartitionByIdClause | null): void;
        VisitCommandWithValueClause(node: Kusto.Language.Syntax.CommandWithValueClause | null): void;
        VisitCommandWithPropertyListClause(node: Kusto.Language.Syntax.CommandWithPropertyListClause | null): void;
        VisitUnknownCommand(node: Kusto.Language.Syntax.UnknownCommand | null): void;
        VisitCustomCommand(node: Kusto.Language.Syntax.CustomCommand | null): void;
        VisitPartialCommand(node: Kusto.Language.Syntax.PartialCommand | null): void;
        VisitCommandAndSkippedTokens(node: Kusto.Language.Syntax.CommandAndSkippedTokens | null): void;
        VisitBadCommand(node: Kusto.Language.Syntax.BadCommand | null): void;
        VisitCommandBlock(node: Kusto.Language.Syntax.CommandBlock | null): void;
    }
    interface SyntaxVisitorFunc extends Function {
        prototype: SyntaxVisitor;
        new (): SyntaxVisitor;
    }
    var SyntaxVisitor: SyntaxVisitorFunc;

    interface AliasStatement extends Kusto.Language.Syntax.Statement {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        AliasKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        DatabaseKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Name: Kusto.Language.Syntax.NameDeclaration | null;
        Equal: Kusto.Language.Syntax.SyntaxToken | null;
        Expression: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface AliasStatementFunc extends Function {
        prototype: AliasStatement;
    }
    var AliasStatement: AliasStatementFunc;

    /**
     * A node in the kusto syntax that represents a binary expression.
     *
     * @public
     * @class Kusto.Language.Syntax.BinaryExpression
     * @augments Kusto.Language.Syntax.Expression
     */
    interface BinaryExpression extends Kusto.Language.Syntax.Expression {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        /**
         * The left side expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.BinaryExpression
         * @function Left
         * @type Kusto.Language.Syntax.Expression
         */
        Left: Kusto.Language.Syntax.Expression | null;
        /**
         * The operator token.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.BinaryExpression
         * @function Operator
         * @type Kusto.Language.Syntax.SyntaxToken
         */
        Operator: Kusto.Language.Syntax.SyntaxToken | null;
        /**
         * The right side expression.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.BinaryExpression
         * @function Right
         * @type Kusto.Language.Syntax.Expression
         */
        Right: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface BinaryExpressionFunc extends Function {
        prototype: BinaryExpression;
    }
    var BinaryExpression: BinaryExpressionFunc;

    interface SyntaxTree {
        /**
         * The root {@link } of the {@link }
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.SyntaxTree
         * @function Root
         * @type Kusto.Language.Syntax.SyntaxNode
         */
        Root: Kusto.Language.Syntax.SyntaxNode | null;
        /**
         * If not null, then the syntax tree this tree fragment was copied from.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.SyntaxTree
         * @function Original
         * @type Kusto.Language.Syntax.SyntaxTree
         */
        Original: Kusto.Language.Syntax.SyntaxTree | null;
        /**
         * The position that this syntax tree fragment starts within the original tree it was copied from.
         *
         * @instance
         * @public
         * @memberof Kusto.Language.Syntax.SyntaxTree
         * @function OffsetInOriginal
         * @type number
         */
        OffsetInOriginal: number;
        /**
         * The maximal depth of the nodes in the tree.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Syntax.SyntaxTree
         * @function Depth
         * @type number
         */
        Depth: number;
        /**
         * True if the tree depth is shallow enough to allow stack recursion
         to walk the nodes of this tree.
         *
         * @instance
         * @this Kusto.Language.Syntax.SyntaxTree
         * @memberof Kusto.Language.Syntax.SyntaxTree
         * @param   {Kusto.Language.GlobalState}    state
         * @return  {boolean}
         */
    }
    interface SyntaxTreeFunc extends Function {
        prototype: SyntaxTree;
        new (root: Kusto.Language.Syntax.SyntaxNode | null, original: Kusto.Language.Syntax.SyntaxTree | null, offsetInOriginal: number): SyntaxTree;
        /**
         * Walks the entire syntax tree and evaluates the maximum depth of all the nodes.
         *
         * @static
         * @private
         * @this Kusto.Language.Syntax.SyntaxTree
         * @memberof Kusto.Language.Syntax.SyntaxTree
         * @param   {Kusto.Language.Syntax.SyntaxNode}    root
         * @return  {number}
         */
    }
    var SyntaxTree: SyntaxTreeFunc;

    interface WhereClause extends Kusto.Language.Syntax.SyntaxNode {
        Kind: Kusto.Language.Syntax.SyntaxKind;
        WhereKeyword: Kusto.Language.Syntax.SyntaxToken | null;
        Condition: Kusto.Language.Syntax.Expression | null;
        ChildCount: number;
        GetChild(index: number): Kusto.Language.Syntax.SyntaxElement | null;
        GetName(index: number): string | null;
        Accept$1(visitor: Kusto.Language.Syntax.SyntaxVisitor | null): void;
        Accept<TResult>(TResult: {prototype: TResult}, visitor: Kusto.Language.Syntax.SyntaxVisitor$1<TResult> | null): TResult;
    }
    interface WhereClauseFunc extends Function {
        prototype: WhereClause;
    }
    var WhereClause: WhereClauseFunc;

    interface SyntaxVisitor$1<TResult> {
        VisitDirectiveBlock(node: Kusto.Language.Syntax.DirectiveBlock | null): TResult;
        VisitDirective(node: Kusto.Language.Syntax.Directive | null): TResult;
        VisitSkippedTokens(node: Kusto.Language.Syntax.SkippedTokens | null): TResult;
        VisitQueryBlock(node: Kusto.Language.Syntax.QueryBlock | null): TResult;
        VisitTypeOfLiteralExpression(node: Kusto.Language.Syntax.TypeOfLiteralExpression | null): TResult;
        VisitBadQueryOperator(node: Kusto.Language.Syntax.BadQueryOperator | null): TResult;
        VisitCompoundStringLiteralExpression(node: Kusto.Language.Syntax.CompoundStringLiteralExpression | null): TResult;
        VisitTokenName(node: Kusto.Language.Syntax.TokenName | null): TResult;
        VisitBracketedName(node: Kusto.Language.Syntax.BracketedName | null): TResult;
        VisitBracedName(node: Kusto.Language.Syntax.BracedName | null): TResult;
        VisitWildcardedName(node: Kusto.Language.Syntax.WildcardedName | null): TResult;
        VisitBracketedWildcardedName(node: Kusto.Language.Syntax.BracketedWildcardedName | null): TResult;
        VisitNameDeclaration(node: Kusto.Language.Syntax.NameDeclaration | null): TResult;
        VisitNameReference(node: Kusto.Language.Syntax.NameReference | null): TResult;
        VisitLiteralExpression(node: Kusto.Language.Syntax.LiteralExpression | null): TResult;
        VisitStarExpression(node: Kusto.Language.Syntax.StarExpression | null): TResult;
        VisitAtExpression(node: Kusto.Language.Syntax.AtExpression | null): TResult;
        VisitJsonPair(node: Kusto.Language.Syntax.JsonPair | null): TResult;
        VisitJsonObjectExpression(node: Kusto.Language.Syntax.JsonObjectExpression | null): TResult;
        VisitJsonArrayExpression(node: Kusto.Language.Syntax.JsonArrayExpression | null): TResult;
        VisitDynamicExpression(node: Kusto.Language.Syntax.DynamicExpression | null): TResult;
        VisitParenthesizedExpression(node: Kusto.Language.Syntax.ParenthesizedExpression | null): TResult;
        VisitExpressionList(node: Kusto.Language.Syntax.ExpressionList | null): TResult;
        VisitExpressionCouple(node: Kusto.Language.Syntax.ExpressionCouple | null): TResult;
        VisitPrefixUnaryExpression(node: Kusto.Language.Syntax.PrefixUnaryExpression | null): TResult;
        VisitBinaryExpression(node: Kusto.Language.Syntax.BinaryExpression | null): TResult;
        VisitInExpression(node: Kusto.Language.Syntax.InExpression | null): TResult;
        VisitHasAnyExpression(node: Kusto.Language.Syntax.HasAnyExpression | null): TResult;
        VisitHasAllExpression(node: Kusto.Language.Syntax.HasAllExpression | null): TResult;
        VisitBetweenExpression(node: Kusto.Language.Syntax.BetweenExpression | null): TResult;
        VisitFunctionCallExpression(node: Kusto.Language.Syntax.FunctionCallExpression | null): TResult;
        VisitToScalarExpression(node: Kusto.Language.Syntax.ToScalarExpression | null): TResult;
        VisitToTableExpression(node: Kusto.Language.Syntax.ToTableExpression | null): TResult;
        VisitMaterializedViewCombineExpression(node: Kusto.Language.Syntax.MaterializedViewCombineExpression | null): TResult;
        VisitMaterializedViewCombineNameClause(node: Kusto.Language.Syntax.MaterializedViewCombineNameClause | null): TResult;
        VisitMaterializedViewCombineClause(node: Kusto.Language.Syntax.MaterializedViewCombineClause | null): TResult;
        VisitSimpleNamedExpression(node: Kusto.Language.Syntax.SimpleNamedExpression | null): TResult;
        VisitRenameList(node: Kusto.Language.Syntax.RenameList | null): TResult;
        VisitCompoundNamedExpression(node: Kusto.Language.Syntax.CompoundNamedExpression | null): TResult;
        VisitBracketedExpression(node: Kusto.Language.Syntax.BracketedExpression | null): TResult;
        VisitPathExpression(node: Kusto.Language.Syntax.PathExpression | null): TResult;
        VisitElementExpression(node: Kusto.Language.Syntax.ElementExpression | null): TResult;
        VisitPipeExpression(node: Kusto.Language.Syntax.PipeExpression | null): TResult;
        VisitRangeOperator(node: Kusto.Language.Syntax.RangeOperator | null): TResult;
        VisitNamedParameter(node: Kusto.Language.Syntax.NamedParameter | null): TResult;
        VisitConsumeOperator(node: Kusto.Language.Syntax.ConsumeOperator | null): TResult;
        VisitCountOperator(node: Kusto.Language.Syntax.CountOperator | null): TResult;
        VisitCountAsIdentifierClause(node: Kusto.Language.Syntax.CountAsIdentifierClause | null): TResult;
        VisitExecuteAndCacheOperator(node: Kusto.Language.Syntax.ExecuteAndCacheOperator | null): TResult;
        VisitExtendOperator(node: Kusto.Language.Syntax.ExtendOperator | null): TResult;
        VisitFacetOperator(node: Kusto.Language.Syntax.FacetOperator | null): TResult;
        VisitFacetWithOperatorClause(node: Kusto.Language.Syntax.FacetWithOperatorClause | null): TResult;
        VisitFacetWithExpressionClause(node: Kusto.Language.Syntax.FacetWithExpressionClause | null): TResult;
        VisitFilterOperator(node: Kusto.Language.Syntax.FilterOperator | null): TResult;
        VisitGetSchemaOperator(node: Kusto.Language.Syntax.GetSchemaOperator | null): TResult;
        VisitFindOperator(node: Kusto.Language.Syntax.FindOperator | null): TResult;
        VisitDataScopeClause(node: Kusto.Language.Syntax.DataScopeClause | null): TResult;
        VisitTypedColumnReference(node: Kusto.Language.Syntax.TypedColumnReference | null): TResult;
        VisitFindInClause(node: Kusto.Language.Syntax.FindInClause | null): TResult;
        VisitFindProjectClause(node: Kusto.Language.Syntax.FindProjectClause | null): TResult;
        VisitPackExpression(node: Kusto.Language.Syntax.PackExpression | null): TResult;
        VisitNameAndTypeDeclaration(node: Kusto.Language.Syntax.NameAndTypeDeclaration | null): TResult;
        VisitPrimitiveTypeExpression(node: Kusto.Language.Syntax.PrimitiveTypeExpression | null): TResult;
        VisitSearchOperator(node: Kusto.Language.Syntax.SearchOperator | null): TResult;
        VisitForkOperator(node: Kusto.Language.Syntax.ForkOperator | null): TResult;
        VisitNameEqualsClause(node: Kusto.Language.Syntax.NameEqualsClause | null): TResult;
        VisitForkExpression(node: Kusto.Language.Syntax.ForkExpression | null): TResult;
        VisitMakeSeriesOperator(node: Kusto.Language.Syntax.MakeSeriesOperator | null): TResult;
        VisitMakeSeriesExpression(node: Kusto.Language.Syntax.MakeSeriesExpression | null): TResult;
        VisitDefaultExpressionClause(node: Kusto.Language.Syntax.DefaultExpressionClause | null): TResult;
        VisitMakeSeriesOnClause(node: Kusto.Language.Syntax.MakeSeriesOnClause | null): TResult;
        VisitMakeSeriesFromClause(node: Kusto.Language.Syntax.MakeSeriesFromClause | null): TResult;
        VisitMakeSeriesToClause(node: Kusto.Language.Syntax.MakeSeriesToClause | null): TResult;
        VisitMakeSeriesStepClause(node: Kusto.Language.Syntax.MakeSeriesStepClause | null): TResult;
        VisitMakeSeriesInRangeClause(node: Kusto.Language.Syntax.MakeSeriesInRangeClause | null): TResult;
        VisitMakeSeriesFromToStepClause(node: Kusto.Language.Syntax.MakeSeriesFromToStepClause | null): TResult;
        VisitMakeSeriesByClause(node: Kusto.Language.Syntax.MakeSeriesByClause | null): TResult;
        VisitMvExpandOperator(node: Kusto.Language.Syntax.MvExpandOperator | null): TResult;
        VisitMvExpandExpression(node: Kusto.Language.Syntax.MvExpandExpression | null): TResult;
        VisitMvExpandRowLimitClause(node: Kusto.Language.Syntax.MvExpandRowLimitClause | null): TResult;
        VisitMvApplyOperator(node: Kusto.Language.Syntax.MvApplyOperator | null): TResult;
        VisitMvApplyExpression(node: Kusto.Language.Syntax.MvApplyExpression | null): TResult;
        VisitMvApplyRowLimitClause(node: Kusto.Language.Syntax.MvApplyRowLimitClause | null): TResult;
        VisitMvApplyContextIdClause(node: Kusto.Language.Syntax.MvApplyContextIdClause | null): TResult;
        VisitMvApplySubqueryExpression(node: Kusto.Language.Syntax.MvApplySubqueryExpression | null): TResult;
        VisitToTypeOfClause(node: Kusto.Language.Syntax.ToTypeOfClause | null): TResult;
        VisitEvaluateSchemaClause(node: Kusto.Language.Syntax.EvaluateSchemaClause | null): TResult;
        VisitEvaluateOperator(node: Kusto.Language.Syntax.EvaluateOperator | null): TResult;
        VisitParseOperator(node: Kusto.Language.Syntax.ParseOperator | null): TResult;
        VisitParseWhereOperator(node: Kusto.Language.Syntax.ParseWhereOperator | null): TResult;
        VisitParseKvWithClause(node: Kusto.Language.Syntax.ParseKvWithClause | null): TResult;
        VisitParseKvOperator(node: Kusto.Language.Syntax.ParseKvOperator | null): TResult;
        VisitPartitionOperator(node: Kusto.Language.Syntax.PartitionOperator | null): TResult;
        VisitPartitionQuery(node: Kusto.Language.Syntax.PartitionQuery | null): TResult;
        VisitPartitionScope(node: Kusto.Language.Syntax.PartitionScope | null): TResult;
        VisitPartitionSubquery(node: Kusto.Language.Syntax.PartitionSubquery | null): TResult;
        VisitProjectOperator(node: Kusto.Language.Syntax.ProjectOperator | null): TResult;
        VisitProjectAwayOperator(node: Kusto.Language.Syntax.ProjectAwayOperator | null): TResult;
        VisitProjectByNamesOperator(node: Kusto.Language.Syntax.ProjectByNamesOperator | null): TResult;
        VisitProjectKeepOperator(node: Kusto.Language.Syntax.ProjectKeepOperator | null): TResult;
        VisitProjectRenameOperator(node: Kusto.Language.Syntax.ProjectRenameOperator | null): TResult;
        VisitProjectReorderOperator(node: Kusto.Language.Syntax.ProjectReorderOperator | null): TResult;
        VisitSampleOperator(node: Kusto.Language.Syntax.SampleOperator | null): TResult;
        VisitSampleDistinctOperator(node: Kusto.Language.Syntax.SampleDistinctOperator | null): TResult;
        VisitEntityGroup(node: Kusto.Language.Syntax.EntityGroup | null): TResult;
        VisitReduceByOperator(node: Kusto.Language.Syntax.ReduceByOperator | null): TResult;
        VisitReduceByWithClause(node: Kusto.Language.Syntax.ReduceByWithClause | null): TResult;
        VisitSummarizeOperator(node: Kusto.Language.Syntax.SummarizeOperator | null): TResult;
        VisitMacroExpandScopeReferenceName(node: Kusto.Language.Syntax.MacroExpandScopeReferenceName | null): TResult;
        VisitMacroExpandOperator(node: Kusto.Language.Syntax.MacroExpandOperator | null): TResult;
        VisitSummarizeByClause(node: Kusto.Language.Syntax.SummarizeByClause | null): TResult;
        VisitDistinctOperator(node: Kusto.Language.Syntax.DistinctOperator | null): TResult;
        VisitTakeOperator(node: Kusto.Language.Syntax.TakeOperator | null): TResult;
        VisitSortOperator(node: Kusto.Language.Syntax.SortOperator | null): TResult;
        VisitOrderedExpression(node: Kusto.Language.Syntax.OrderedExpression | null): TResult;
        VisitOrderingClause(node: Kusto.Language.Syntax.OrderingClause | null): TResult;
        VisitOrderingNullsClause(node: Kusto.Language.Syntax.OrderingNullsClause | null): TResult;
        VisitTopHittersOperator(node: Kusto.Language.Syntax.TopHittersOperator | null): TResult;
        VisitTopHittersByClause(node: Kusto.Language.Syntax.TopHittersByClause | null): TResult;
        VisitTopOperator(node: Kusto.Language.Syntax.TopOperator | null): TResult;
        VisitTopNestedOperator(node: Kusto.Language.Syntax.TopNestedOperator | null): TResult;
        VisitTopNestedClause(node: Kusto.Language.Syntax.TopNestedClause | null): TResult;
        VisitTopNestedWithOthersClause(node: Kusto.Language.Syntax.TopNestedWithOthersClause | null): TResult;
        VisitUnionOperator(node: Kusto.Language.Syntax.UnionOperator | null): TResult;
        VisitAsOperator(node: Kusto.Language.Syntax.AsOperator | null): TResult;
        VisitSerializeOperator(node: Kusto.Language.Syntax.SerializeOperator | null): TResult;
        VisitInvokeOperator(node: Kusto.Language.Syntax.InvokeOperator | null): TResult;
        VisitRenderOperator(node: Kusto.Language.Syntax.RenderOperator | null): TResult;
        VisitMakeGraphOperator(node: Kusto.Language.Syntax.MakeGraphOperator | null): TResult;
        VisitMakeGraphWithTablesAndKeysClause(node: Kusto.Language.Syntax.MakeGraphWithTablesAndKeysClause | null): TResult;
        VisitMakeGraphWithImplicitIdClause(node: Kusto.Language.Syntax.MakeGraphWithImplicitIdClause | null): TResult;
        VisitGraphMarkComponentsOperator(node: Kusto.Language.Syntax.GraphMarkComponentsOperator | null): TResult;
        VisitGraphWhereNodesOperator(node: Kusto.Language.Syntax.GraphWhereNodesOperator | null): TResult;
        VisitGraphWhereEdgesOperator(node: Kusto.Language.Syntax.GraphWhereEdgesOperator | null): TResult;
        VisitMakeGraphTableAndKeyClause(node: Kusto.Language.Syntax.MakeGraphTableAndKeyClause | null): TResult;
        VisitMakeGraphPartitionedByClause(node: Kusto.Language.Syntax.MakeGraphPartitionedByClause | null): TResult;
        VisitGraphToTableOperator(node: Kusto.Language.Syntax.GraphToTableOperator | null): TResult;
        VisitGraphToTableOutputClause(node: Kusto.Language.Syntax.GraphToTableOutputClause | null): TResult;
        VisitGraphToTableAsClause(node: Kusto.Language.Syntax.GraphToTableAsClause | null): TResult;
        VisitGraphMatchOperator(node: Kusto.Language.Syntax.GraphMatchOperator | null): TResult;
        VisitGraphShortestPathsOperator(node: Kusto.Language.Syntax.GraphShortestPathsOperator | null): TResult;
        VisitGraphMatchPattern(node: Kusto.Language.Syntax.GraphMatchPattern | null): TResult;
        VisitGraphMatchPatternNode(node: Kusto.Language.Syntax.GraphMatchPatternNode | null): TResult;
        VisitGraphMatchPatternEdge(node: Kusto.Language.Syntax.GraphMatchPatternEdge | null): TResult;
        VisitGraphMatchPatternEdgeRange(node: Kusto.Language.Syntax.GraphMatchPatternEdgeRange | null): TResult;
        VisitWhereClause(node: Kusto.Language.Syntax.WhereClause | null): TResult;
        VisitProjectClause(node: Kusto.Language.Syntax.ProjectClause | null): TResult;
        VisitNameReferenceList(node: Kusto.Language.Syntax.NameReferenceList | null): TResult;
        VisitRenderWithClause(node: Kusto.Language.Syntax.RenderWithClause | null): TResult;
        VisitPrintOperator(node: Kusto.Language.Syntax.PrintOperator | null): TResult;
        VisitAliasStatement(node: Kusto.Language.Syntax.AliasStatement | null): TResult;
        VisitLetStatement(node: Kusto.Language.Syntax.LetStatement | null): TResult;
        VisitFunctionDeclaration(node: Kusto.Language.Syntax.FunctionDeclaration | null): TResult;
        VisitFunctionParameters(node: Kusto.Language.Syntax.FunctionParameters | null): TResult;
        VisitFunctionParameter(node: Kusto.Language.Syntax.FunctionParameter | null): TResult;
        VisitDefaultValueDeclaration(node: Kusto.Language.Syntax.DefaultValueDeclaration | null): TResult;
        VisitFunctionBody(node: Kusto.Language.Syntax.FunctionBody | null): TResult;
        VisitSchemaTypeExpression(node: Kusto.Language.Syntax.SchemaTypeExpression | null): TResult;
        VisitExpressionStatement(node: Kusto.Language.Syntax.ExpressionStatement | null): TResult;
        VisitMaterializeExpression(node: Kusto.Language.Syntax.MaterializeExpression | null): TResult;
        VisitSetOptionStatement(node: Kusto.Language.Syntax.SetOptionStatement | null): TResult;
        VisitOptionValueClause(node: Kusto.Language.Syntax.OptionValueClause | null): TResult;
        VisitQueryParametersStatement(node: Kusto.Language.Syntax.QueryParametersStatement | null): TResult;
        VisitRestrictStatementWithClause(node: Kusto.Language.Syntax.RestrictStatementWithClause | null): TResult;
        VisitRestrictStatement(node: Kusto.Language.Syntax.RestrictStatement | null): TResult;
        VisitPatternStatement(node: Kusto.Language.Syntax.PatternStatement | null): TResult;
        VisitPatternDeclaration(node: Kusto.Language.Syntax.PatternDeclaration | null): TResult;
        VisitPatternPathParameter(node: Kusto.Language.Syntax.PatternPathParameter | null): TResult;
        VisitPatternMatch(node: Kusto.Language.Syntax.PatternMatch | null): TResult;
        VisitPatternPathValue(node: Kusto.Language.Syntax.PatternPathValue | null): TResult;
        VisitDataScopeExpression(node: Kusto.Language.Syntax.DataScopeExpression | null): TResult;
        VisitDataTableExpression(node: Kusto.Language.Syntax.DataTableExpression | null): TResult;
        VisitRowSchema(node: Kusto.Language.Syntax.RowSchema | null): TResult;
        VisitEvaluateRowSchema(node: Kusto.Language.Syntax.EvaluateRowSchema | null): TResult;
        VisitExternalDataExpression(node: Kusto.Language.Syntax.ExternalDataExpression | null): TResult;
        VisitContextualDataTableExpression(node: Kusto.Language.Syntax.ContextualDataTableExpression | null): TResult;
        VisitExternalDataWithClause(node: Kusto.Language.Syntax.ExternalDataWithClause | null): TResult;
        VisitInlineExternalTableKindClause(node: Kusto.Language.Syntax.InlineExternalTableKindClause | null): TResult;
        VisitInlineExternalTableDataFormatClause(node: Kusto.Language.Syntax.InlineExternalTableDataFormatClause | null): TResult;
        VisitDateTimePattern(node: Kusto.Language.Syntax.DateTimePattern | null): TResult;
        VisitInlineExternalTablePathFormatPartitionColumnReference(node: Kusto.Language.Syntax.InlineExternalTablePathFormatPartitionColumnReference | null): TResult;
        VisitInlineExternalTablePathFormatClause(node: Kusto.Language.Syntax.InlineExternalTablePathFormatClause | null): TResult;
        VisitPartitionColumnDeclaration(node: Kusto.Language.Syntax.PartitionColumnDeclaration | null): TResult;
        VisitInlineExternalTablePartitionClause(node: Kusto.Language.Syntax.InlineExternalTablePartitionClause | null): TResult;
        VisitInlineExternalTableConnectionStringsClause(node: Kusto.Language.Syntax.InlineExternalTableConnectionStringsClause | null): TResult;
        VisitInlineExternalTableExpression(node: Kusto.Language.Syntax.InlineExternalTableExpression | null): TResult;
        VisitJoinOperator(node: Kusto.Language.Syntax.JoinOperator | null): TResult;
        VisitLookupOperator(node: Kusto.Language.Syntax.LookupOperator | null): TResult;
        VisitJoinOnClause(node: Kusto.Language.Syntax.JoinOnClause | null): TResult;
        VisitJoinWhereClause(node: Kusto.Language.Syntax.JoinWhereClause | null): TResult;
        VisitScanOperator(node: Kusto.Language.Syntax.ScanOperator | null): TResult;
        VisitAssertSchemaOperator(node: Kusto.Language.Syntax.AssertSchemaOperator | null): TResult;
        VisitScanDeclareClause(node: Kusto.Language.Syntax.ScanDeclareClause | null): TResult;
        VisitScanOrderByClause(node: Kusto.Language.Syntax.ScanOrderByClause | null): TResult;
        VisitScanPartitionByClause(node: Kusto.Language.Syntax.ScanPartitionByClause | null): TResult;
        VisitScanStepOutput(node: Kusto.Language.Syntax.ScanStepOutput | null): TResult;
        VisitScanStep(node: Kusto.Language.Syntax.ScanStep | null): TResult;
        VisitScanComputationClause(node: Kusto.Language.Syntax.ScanComputationClause | null): TResult;
        VisitScanAssignment(node: Kusto.Language.Syntax.ScanAssignment | null): TResult;
        VisitPartitionByOperator(node: Kusto.Language.Syntax.PartitionByOperator | null): TResult;
        VisitPartitionByIdClause(node: Kusto.Language.Syntax.PartitionByIdClause | null): TResult;
        VisitCommandWithValueClause(node: Kusto.Language.Syntax.CommandWithValueClause | null): TResult;
        VisitCommandWithPropertyListClause(node: Kusto.Language.Syntax.CommandWithPropertyListClause | null): TResult;
        VisitUnknownCommand(node: Kusto.Language.Syntax.UnknownCommand | null): TResult;
        VisitCustomCommand(node: Kusto.Language.Syntax.CustomCommand | null): TResult;
        VisitPartialCommand(node: Kusto.Language.Syntax.PartialCommand | null): TResult;
        VisitCommandAndSkippedTokens(node: Kusto.Language.Syntax.CommandAndSkippedTokens | null): TResult;
        VisitBadCommand(node: Kusto.Language.Syntax.BadCommand | null): TResult;
        VisitCommandBlock(node: Kusto.Language.Syntax.CommandBlock | null): TResult;
    }
    interface SyntaxVisitor$1Func extends Function {
        <TResult>($TResult: Bridge.TypeRef<TResult>): {
            prototype: SyntaxVisitor$1<TResult>;
            new (): SyntaxVisitor$1<TResult>;
        }
    }
    var SyntaxVisitor$1: SyntaxVisitor$1Func;

}

declare namespace Kusto.Language.Utils {
    interface ListExtensions {
    }
    interface ListExtensionsFunc extends Function {
        prototype: ListExtensions;
        KeyComparer$2: Kusto.Language.Utils.ListExtensions.KeyComparer$2Func;
        new (): ListExtensions;
        /**
         * Converts the sequence to a read only list.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                      T       
         * @param   {System.Collections.Generic.IEnumerable$1}      list
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        ToReadOnly<T>(T: {prototype: T}, list: System.Collections.Generic.IEnumerable$1<T> | null): System.Collections.Generic.IReadOnlyList$1<T> | null;
        /**
         * Converts the sequence to a {@link }
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                    T       
         * @param   {System.Collections.Generic.IEnumerable$1}    list
         * @return  {Kusto.Language.Utils.SafeList$1}
         */
        ToSafeList<T>(T: {prototype: T}, list: System.Collections.Generic.IEnumerable$1<T> | null): Kusto.Language.Utils.SafeList$1<T> | null;
        /**
         * Converts a sequence to a {@link }
         This function is provided because it does not exist for some runtimes (Bridge.Net included)
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                    T       
         * @param   {System.Collections.Generic.IEnumerable$1}    list
         * @return  {System.Collections.Generic.HashSet$1}
         */
        ToHashSetEx<T>(T: {prototype: T}, list: System.Collections.Generic.IEnumerable$1<T> | null): System.Collections.Generic.HashSet$1<T> | null;
        /**
         * Constructs a dictionary from a list that may have duplicate keys.
         In case of duplicates, the last matching item is kept.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                    TKey           
         * @param   {Function}                                    TValue         
         * @param   {System.Collections.Generic.IEnumerable$1}    values         
         * @param   {System.Func}                                 keySelector
         * @return  {System.Collections.Generic.Dictionary$2}
         */
        ToDictionaryLast<TKey, TValue>(TKey: {prototype: TKey}, TValue: {prototype: TValue}, values: System.Collections.Generic.IEnumerable$1<TValue> | null, keySelector: {(arg: TValue): TKey} | null): System.Collections.Generic.Dictionary$2<TKey,TValue> | null;
        /**
         * Constructs a dictionary from a list that may have duplicate keys.
         In case of duplicates, the last matching item is kept.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                    TItem            
         * @param   {Function}                                    TKey             
         * @param   {Function}                                    TValue           
         * @param   {System.Collections.Generic.IEnumerable$1}    items            
         * @param   {System.Func}                                 keySelector      
         * @param   {System.Func}                                 valueSelector
         * @return  {System.Collections.Generic.Dictionary$2}
         */
        ToDictionaryLast$1<TItem, TKey, TValue>(TItem: {prototype: TItem}, TKey: {prototype: TKey}, TValue: {prototype: TValue}, items: System.Collections.Generic.IEnumerable$1<TItem> | null, keySelector: {(arg: TItem): TKey} | null, valueSelector: {(arg: TItem): TValue} | null): System.Collections.Generic.Dictionary$2<TKey,TValue> | null;
        AddOrUpdate<TItem, TKey>(TItem: {prototype: TItem}, TKey: {prototype: TKey}, items: System.Collections.Generic.IReadOnlyList$1<TItem> | null, newOrUpdatedItems: System.Collections.Generic.IReadOnlyList$1<TItem> | null, keySelector: {(arg: TItem): TKey} | null): System.Collections.Generic.IReadOnlyList$1<TItem> | null;
        /**
         * Return the sequence of distinct items based on the key, where the first item with a matching key wins.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                    TItem          
         * @param   {Function}                                    TKey           
         * @param   {System.Collections.Generic.IEnumerable$1}    items          
         * @param   {System.Func}                                 keySelector
         * @return  {System.Collections.Generic.IEnumerable$1}
         */
        DistinctFirst<TItem, TKey>(TItem: {prototype: TItem}, TKey: {prototype: TKey}, items: System.Collections.Generic.IEnumerable$1<TItem> | null, keySelector: {(arg: TItem): TKey} | null): System.Collections.Generic.IEnumerable$1<TItem> | null;
        /**
         * Return the sequence of distinct items based on the key, where last item with a matching key wins.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                    TItem          
         * @param   {Function}                                    TKey           
         * @param   {System.Collections.Generic.IEnumerable$1}    items          
         * @param   {System.Func}                                 keySelector
         * @return  {System.Collections.Generic.IEnumerable$1}
         */
        DistinctLast<TItem, TKey>(TItem: {prototype: TItem}, TKey: {prototype: TKey}, items: System.Collections.Generic.IEnumerable$1<TItem> | null, keySelector: {(arg: TItem): TKey} | null): System.Collections.Generic.IEnumerable$1<TItem> | null;
        /**
         * Searches for an item in the ordered array that matches the comparison.
         The comparer function returns 0 if it matches the item, -1 if the item comes before and 1 if the item comes after.
         Returns the index of the item found or -1 if the item was not found.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                      T           
         * @param   {System.Collections.Generic.IReadOnlyList$1}    array       
         * @param   {System.Func}                                   comparer
         * @return  {number}
         */
        BinarySearch<T>(T: {prototype: T}, array: System.Collections.Generic.IReadOnlyList$1<T> | null, comparer: {(arg: T): number} | null): number;
        /**
         * Return the index of the item in the list or -1 if not found.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                      T       
         * @param   {System.Collections.Generic.IReadOnlyList$1}    list    
         * @param   {T}                                             item
         * @return  {number}
         */
        IndexOf<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, item: T): number;
        /**
         * Returns the index of the first match or -1 if no matches.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                      T            
         * @param   {System.Collections.Generic.IReadOnlyList$1}    list         
         * @param   {System.Func}                                   predicate
         * @return  {number}
         */
        FirstIndex<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, predicate: {(arg: T): boolean} | null): number;
        /**
         * Returns the index of the last match or -1 if no matches.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                      T            
         * @param   {System.Collections.Generic.IReadOnlyList$1}    list         
         * @param   {System.Func}                                   predicate
         * @return  {number}
         */
        LastIndex<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, predicate: {(arg: T): boolean} | null): number;
        /**
         * Returns a new list with the item added.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                      T          
         * @param   {System.Collections.Generic.IReadOnlyList$1}    list       
         * @param   {T}                                             newItem
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        Append<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, newItem: T): System.Collections.Generic.IReadOnlyList$1<T> | null;
        /**
         * Returns a new list with the items added.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                      T           
         * @param   {System.Collections.Generic.IReadOnlyList$1}    list        
         * @param   {System.Collections.Generic.IReadOnlyList$1}    newItems
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        Append$1<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, newItems: System.Collections.Generic.IReadOnlyList$1<T> | null): System.Collections.Generic.IReadOnlyList$1<T> | null;
        /**
         * Returns a new list with the item at the specified index replaced with the new item.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                      T          
         * @param   {System.Collections.Generic.IReadOnlyList$1}    list       
         * @param   {number}                                        index      
         * @param   {T}                                             newItem
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        Replace<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, index: number, newItem: T): System.Collections.Generic.IReadOnlyList$1<T> | null;
        /**
         * Returns a new list with the items in the specified range replaced with the new item.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                      T          
         * @param   {System.Collections.Generic.IReadOnlyList$1}    list       
         * @param   {number}                                        start      
         * @param   {number}                                        length     
         * @param   {T}                                             newItem
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        ReplaceRange<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, start: number, length: number, newItem: T): System.Collections.Generic.IReadOnlyList$1<T> | null;
        /**
         * Returns a new list with the items in the specified range replaced with the new item.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ListExtensions
         * @memberof Kusto.Language.Utils.ListExtensions
         * @param   {Function}                                      T           
         * @param   {System.Collections.Generic.IReadOnlyList$1}    list        
         * @param   {number}                                        start       
         * @param   {number}                                        length      
         * @param   {System.Collections.Generic.IReadOnlyList$1}    newItems
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        ReplaceRange$1<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, start: number, length: number, newItems: System.Collections.Generic.IReadOnlyList$1<T> | null): System.Collections.Generic.IReadOnlyList$1<T> | null;
    }
    var ListExtensions: ListExtensionsFunc;
    module ListExtensions {
        interface KeyComparer$2<TItem,TKey> extends System.Collections.Generic.IEqualityComparer$1<TItem> {
            equals2(x: TItem, y: TItem): boolean;
            getHashCode2(obj: TItem): number;
        }
        interface KeyComparer$2Func extends Function {
            <TItem, TKey>($TItem: Bridge.TypeRef<TItem>, $TKey: Bridge.TypeRef<TKey>): {
                prototype: KeyComparer$2<TItem,TKey>;
                new (keySelector: {(arg: TItem): TKey} | null): KeyComparer$2<TItem,TKey>;
            }
        }
    }

    /** @namespace Kusto.Language.Utils */

    /**
     * A map that limits the number of entries,
     retaining only the most recently accessed ones.
     *
     * @class Kusto.Language.Utils.MostRecentlyUsedCache$2
     */
    interface MostRecentlyUsedCache$2<TKey,TValue> {
        /**
         * The current number of entries in the cache.
         *
         * @instance
         * @public
         * @readonly
         * @memberof Kusto.Language.Utils.MostRecentlyUsedCache$2
         * @function Count
         * @type number
         */
        Count: number;
        /**
         * Gets the value for the key and marks the key as recently used.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.MostRecentlyUsedCache$2
         * @memberof Kusto.Language.Utils.MostRecentlyUsedCache$2
         * @param   {TKey}       key      
         * @param   {TValue}     value
         * @return  {boolean}
         */
        TryGetValue(key: TKey, value: {v: TValue}): boolean;
        /**
         * Adds or updates the value for the key and removes any items beyond the max size.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.MostRecentlyUsedCache$2
         * @memberof Kusto.Language.Utils.MostRecentlyUsedCache$2
         * @param   {TKey}      key      
         * @param   {TValue}    value
         * @return  {void}
         */
        AddOrUpdate(key: TKey, value: TValue): void;
    }
    interface MostRecentlyUsedCache$2Func extends Function {
        <TKey, TValue>($TKey: Bridge.TypeRef<TKey>, $TValue: Bridge.TypeRef<TValue>): {
            prototype: MostRecentlyUsedCache$2<TKey,TValue>;
            new (maxSize: number): MostRecentlyUsedCache$2<TKey,TValue>;
        }
    }
    var MostRecentlyUsedCache$2: MostRecentlyUsedCache$2Func;

    interface ObjectPool$1<T> {
        AllocateFromPool(): T | null;
        ReturnToPool(item: T | null): void;
    }
    interface ObjectPool$1Func extends Function {
        <T>($T: Bridge.TypeRef<T>): {
            prototype: ObjectPool$1<T>;
            new (creator: {(): T} | null, resetter: {(arg: T): void} | null, size: number): ObjectPool$1<T>;
        }
    }
    var ObjectPool$1: ObjectPool$1Func;

    interface Interlocked {
    }
    interface InterlockedFunc extends Function {
        prototype: Interlocked;
        new (): Interlocked;
        /**
         * Compares two values, and if they are equal replaces with the new value. 
         Returns the original value.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.Interlocked
         * @memberof Kusto.Language.Utils.Interlocked
         * @param   {Function}    T            
         * @param   {T}           value        
         * @param   {T}           newValue     
         * @param   {T}           comparand
         * @return  {T}
         */
        CompareExchange<T>(T: {prototype: T}, value: {v: T | null}, newValue: T | null, comparand: T | null): T | null;
        /**
         * Compares two values, and if they are equal replaces with the new value. 
         Returns the original value.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.Interlocked
         * @memberof Kusto.Language.Utils.Interlocked
         * @param   {System.Int32}    value        
         * @param   {number}          newValue     
         * @param   {number}          comparand
         * @return  {number}
         */
        CompareExchange$1(value: {v: number}, newValue: number, comparand: number): number;
        Exchange<T>(T: {prototype: T}, value: {v: T | null}, newValue: T | null): T | null;
    }
    var Interlocked: InterlockedFunc;

    interface ConnectionInfo {
        Text: string | null;
        DataSource: string | null;
        GetPart(name: string | null): string | null;
    }
    interface ConnectionInfoFunc extends Function {
        prototype: ConnectionInfo;
        Parse(text: string | null): Kusto.Language.Utils.ConnectionInfo | null;
    }
    var ConnectionInfo: ConnectionInfoFunc;

    interface Ensure {
    }
    interface EnsureFunc extends Function {
        prototype: Ensure;
        new (): Ensure;
        IsTrue(value: boolean, message?: string | null): void;
        AreEqual<T>(T: {prototype: T}, expected: T, actual: T, message?: string | null): void;
        NotNull(value: any | null, message?: string | null): void;
        IsNull(value: any | null, message?: string | null): void;
        ArgumentNotNull(value: any | null, paramName: string | null): void;
        ElementsNotNull<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, listName: string | null): void;
    }
    var Ensure: EnsureFunc;

    interface EmptyReadOnlyList$1<T> {
    }
    interface EmptyReadOnlyList$1Func extends Function {
        <T>($T: Bridge.TypeRef<T>): {
            prototype: EmptyReadOnlyList$1<T>;
            new (): EmptyReadOnlyList$1<T>;
            Instance: System.Collections.Generic.IReadOnlyList$1<T> | null;
        }
    }
    var EmptyReadOnlyList$1: EmptyReadOnlyList$1Func;

    interface DictionaryExtensions {
    }
    interface DictionaryExtensionsFunc extends Function {
        prototype: DictionaryExtensions;
        new (): DictionaryExtensions;
        GetOrAdd<TKey, TValue>(TKey: {prototype: TKey}, TValue: {prototype: TValue}, dictionary: System.Collections.Generic.Dictionary$2<TKey,TValue> | null, key: TKey, value: TValue): TValue;
        GetOrAdd$1<TKey, TValue>(TKey: {prototype: TKey}, TValue: {prototype: TValue}, dictionary: System.Collections.Generic.Dictionary$2<TKey,TValue> | null, key: TKey, valueFactory: {(arg: TKey): TValue} | null): TValue;
        AddOrUpdate$2<TKey, TValue>(TKey: {prototype: TKey}, TValue: {prototype: TValue}, dictionary: System.Collections.Generic.Dictionary$2<TKey,TValue> | null, key: TKey, value: TValue): void;
        AddOrUpdate<TKey, TValue>(TKey: {prototype: TKey}, TValue: {prototype: TValue}, dictionary: System.Collections.Generic.Dictionary$2<TKey,TValue> | null, key: TKey, fnAddFactory: {(arg: TKey): TValue} | null, fnUpdateFactory: {(arg1: TKey, arg2: TValue): TValue} | null): void;
        AddOrUpdate$1<TKey, TValue>(TKey: {prototype: TKey}, TValue: {prototype: TValue}, dictionary: System.Collections.Generic.Dictionary$2<TKey,TValue> | null, key: TKey, fnAddFactory: {(arg1: TKey, arg2: TValue): TValue} | null, fnUpdateFactory: {(arg1: TKey, arg2: TValue, arg3: TValue): TValue} | null, value: TValue): void;
    }
    var DictionaryExtensions: DictionaryExtensionsFunc;

    interface Optional$1<T> {
        Value: T;
        HasValue: boolean;
        $clone(to: Kusto.Language.Utils.Optional$1<T>): Kusto.Language.Utils.Optional$1<T>;
    }
    interface Optional$1Func extends Function {
        <T>($T: Bridge.TypeRef<T>): {
            prototype: Optional$1<T>;
            $ctor1: {
                new (value: T): Optional$1<T>
            };
            new (): Optional$1<T>;
            ctor: {
                new (): Optional$1<T>
            };
            op_Implicit(value: T): Kusto.Language.Utils.Optional$1<T>;
        }
    }
    var Optional$1: Optional$1Func;

    interface CancellationToken {
        ThrowIfCancellationRequested(): void;
        getHashCode(): number;
        equals(o: Kusto.Language.Utils.CancellationToken): boolean;
        $clone(to: Kusto.Language.Utils.CancellationToken): Kusto.Language.Utils.CancellationToken;
    }
    interface CancellationTokenFunc extends Function {
        prototype: CancellationToken;
        $ctor1: {
            new (fnCanceled: {(): boolean} | null): CancellationToken
        };
        new (): CancellationToken;
        ctor: {
            new (): CancellationToken
        };
    }
    var CancellationToken: CancellationTokenFunc;

    interface ArgumentCheckers {
    }
    interface ArgumentCheckersFunc extends Function {
        prototype: ArgumentCheckers;
        new (): ArgumentCheckers;
        /**
         * Throws an exception if the argument is null
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ArgumentCheckers
         * @memberof Kusto.Language.Utils.ArgumentCheckers
         * @param   {Function}    T                
         * @param   {T}           value            
         * @param   {string}      parameterName
         * @return  {T}
         */
        CheckArgumentNull<T>(T: {prototype: T}, value: T, parameterName: string | null): T;
        /**
         * Throws an exception if the argument is null or empty.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ArgumentCheckers
         * @memberof Kusto.Language.Utils.ArgumentCheckers
         * @param   {Function}                                      T                
         * @param   {System.Collections.Generic.IReadOnlyList$1}    list             
         * @param   {string}                                        parameterName
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        CheckArgumentNullOrEmpty<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, parameterName: string | null): System.Collections.Generic.IReadOnlyList$1<T> | null;
        /**
         * Throws an exception if the argument is null or an element is null.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ArgumentCheckers
         * @memberof Kusto.Language.Utils.ArgumentCheckers
         * @param   {Function}                                      T                
         * @param   {System.Collections.Generic.IReadOnlyList$1}    list             
         * @param   {string}                                        parameterName
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        CheckArgumentNullOrElementNull<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, parameterName: string | null): System.Collections.Generic.IReadOnlyList$1<T> | null;
        /**
         * Throws an exception if the argument is null, empty or an element is null.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ArgumentCheckers
         * @memberof Kusto.Language.Utils.ArgumentCheckers
         * @param   {Function}                                      T                
         * @param   {System.Collections.Generic.IReadOnlyList$1}    list             
         * @param   {string}                                        parameterName
         * @return  {System.Collections.Generic.IReadOnlyList$1}
         */
        CheckArgumentNullOrEmptyOrElementNull<T>(T: {prototype: T}, list: System.Collections.Generic.IReadOnlyList$1<T> | null, parameterName: string | null): System.Collections.Generic.IReadOnlyList$1<T> | null;
    }
    var ArgumentCheckers: ArgumentCheckersFunc;

    interface HashSetExtensions {
    }
    interface HashSetExtensionsFunc extends Function {
        prototype: HashSetExtensions;
        new (): HashSetExtensions;
        AddRange<T>(T: {prototype: T}, hashSet: System.Collections.Generic.HashSet$1<T> | null, items: System.Collections.Generic.IEnumerable$1<T> | null): void;
    }
    var HashSetExtensions: HashSetExtensionsFunc;

    /**
     * Compares {@link } instances for structural equality (all elements are equal in order)
     *
     * @class Kusto.Language.Utils.ReadOnlyListComparer$1
     * @implements  System.Collections.Generic.IEqualityComparer$1
     */
    interface ReadOnlyListComparer$1<T> extends System.Collections.Generic.IEqualityComparer$1<System.Collections.Generic.IReadOnlyList$1<T>> {
        equals2(x: System.Collections.Generic.IReadOnlyList$1<T> | null, y: System.Collections.Generic.IReadOnlyList$1<T> | null): boolean;
        getHashCode2(list: System.Collections.Generic.IReadOnlyList$1<T> | null): number;
    }
    interface ReadOnlyListComparer$1Func extends Function {
        <T>($T: Bridge.TypeRef<T>): {
            prototype: ReadOnlyListComparer$1<T>;
            new (comparer: System.Collections.Generic.IEqualityComparer$1<T> | null): ReadOnlyListComparer$1<T>;
            /**
             * A {@link } that compares elements using their default comparer.
             *
             * @static
             * @public
             * @readonly
             * @memberof Kusto.Language.Utils.ReadOnlyListComparer$1
             * @type Kusto.Language.Utils.ReadOnlyListComparer$1
             */
            Default: Kusto.Language.Utils.ReadOnlyListComparer$1<T> | null;
        }
    }
    var ReadOnlyListComparer$1: ReadOnlyListComparer$1Func;

    /**
     * A table of strings accessible via lookup of string ranges
     *
     * @class Kusto.Language.Utils.StringTable
     * @implements  System.Collections.Generic.IEnumerable$1
     */
    interface StringTable extends System.Collections.Generic.IEnumerable$1<string> {
        /**
         * Add a new string to the table.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.StringTable
         * @memberof Kusto.Language.Utils.StringTable
         * @param   {string}    text
         * @return  {string}            The instance of the value added or already found in the table.
         */
        Add(text: string | null): string | null;
        /**
         * Add a set of strings to the table.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.StringTable
         * @memberof Kusto.Language.Utils.StringTable
         * @param   {System.Collections.Generic.IEnumerable$1}    strings
         * @return  {void}
         */
        Add$2(strings: System.Collections.Generic.IEnumerable$1<string> | null): void;
        /**
         * Add a new string sub range to the table.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.StringTable
         * @memberof Kusto.Language.Utils.StringTable
         * @param   {string}    text      
         * @param   {number}    start     
         * @param   {number}    length
         * @return  {string}              The instance of the value added or already found in the table.
         */
        Add$1(text: string | null, start: number, length: number): string | null;
        /**
         * True if the table contains the string value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.StringTable
         * @memberof Kusto.Language.Utils.StringTable
         * @param   {string}     text
         * @return  {boolean}
         */
        Contains(text: string | null): boolean;
        /**
         * True if the table contains the sub string value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.StringTable
         * @memberof Kusto.Language.Utils.StringTable
         * @param   {string}     text      
         * @param   {number}     start     
         * @param   {number}     length
         * @return  {boolean}
         */
        ContainsKey(text: string | null, start: number, length: number): boolean;
        /**
         * @instance
         * @public
         * @this Kusto.Language.Utils.StringTable
         * @memberof Kusto.Language.Utils.StringTable
         * @return  {System.Collections.Generic.IEnumerator$1}
         */
        GetEnumerator(): System.Collections.Generic.IEnumerator$1<string> | null;
        /**
         * @instance
         * @this Kusto.Language.Utils.StringTable
         * @memberof Kusto.Language.Utils.StringTable
         * @return  {System.Collections.IEnumerator}
         */
    }
    interface StringTableFunc extends Function {
        prototype: StringTable;
        /**
         * Construct a new empty {@link }
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.StringTable
         * @memberof Kusto.Language.Utils.StringTable
         * @return  {void}
         */
        new (): StringTable;
    }
    var StringTable: StringTableFunc;

    /**
     * Compares strings with embedded numbers using the numbers numeric order, not the text order.
     *
     * @class Kusto.Language.Utils.StringAndNumberComparer
     * @implements  System.Collections.Generic.IComparer$1
     */
    interface StringAndNumberComparer extends System.Collections.Generic.IComparer$1<string> {
        compare(xText: string | null, yText: string | null): number;
        /**
         * Gets the largest length the two strings share without digits.
         *
         * @instance
         * @private
         * @this Kusto.Language.Utils.StringAndNumberComparer
         * @memberof Kusto.Language.Utils.StringAndNumberComparer
         * @param   {string}    xText     
         * @param   {number}    xStart    
         * @param   {string}    yText     
         * @param   {number}    yStart
         * @return  {number}
         */
    }
    interface StringAndNumberComparerFunc extends Function {
        prototype: StringAndNumberComparer;
        Ordinal: Kusto.Language.Utils.StringAndNumberComparer | null;
        OrdinalIgnoreCase: Kusto.Language.Utils.StringAndNumberComparer | null;
    }
    var StringAndNumberComparer: StringAndNumberComparerFunc;

    interface StringExtensions {
    }
    interface StringExtensionsFunc extends Function {
        prototype: StringExtensions;
        new (): StringExtensions;
        /**
         * Returns a new string with the characters filtered to only characters matching the predicate.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.StringExtensions
         * @memberof Kusto.Language.Utils.StringExtensions
         * @param   {string}         text           
         * @param   {System.Func}    fnPredicate
         * @return  {string}
         */
        Filter(text: string | null, fnPredicate: {(arg: number): boolean} | null): string | null;
    }
    var StringExtensions: StringExtensionsFunc;

    /**
     * Represents a map between a set of string keys and values
     that can be used to quickly find the longest match in a region of another string.
     *
     * @public
     * @class Kusto.Language.Utils.SubstringMap$1
     */
    interface SubstringMap$1<TValue> {
        /**
         * Finds the
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.SubstringMap$1
         * @memberof Kusto.Language.Utils.SubstringMap$1
         * @param   {string}                                       text     
         * @param   {number}                                       start
         * @return  {System.Collections.Generic.KeyValuePair$2}
         */
        GetLongestMatch(text: string | null, start: number): System.Collections.Generic.KeyValuePair$2<string,TValue>;
    }
    interface SubstringMap$1Func extends Function {
        <TValue>($TValue: Bridge.TypeRef<TValue>): {
            prototype: SubstringMap$1<TValue>;
            Node: Kusto.Language.Utils.SubstringMap$1.NodeFunc;
            new (keyValuePairs: System.Collections.Generic.IEnumerable$1<System.Collections.Generic.KeyValuePair$2<string,TValue>> | null): SubstringMap$1<TValue>;
        }
    }
    var SubstringMap$1: SubstringMap$1Func;
    module SubstringMap$1 {
        interface Node<TValue> {
            /**
             * The {@link } resolvable at this node.
             *
             * @instance
             * @public
             * @memberof Kusto.Language.Utils.SubstringMap$1.Node
             * @function Value
             * @type System.Collections.Generic.KeyValuePair$2
             */
            Value: System.Collections.Generic.KeyValuePair$2<string,TValue>;
            HasValue: boolean;
            /**
             * Gets the {@link } corresponding to the key.
             *
             * @instance
             * @public
             * @this Kusto.Language.Utils.SubstringMap$1.Node
             * @memberof Kusto.Language.Utils.SubstringMap$1.Node
             * @param   {number}                                      key
             * @return  {Kusto.Language.Utils.SubstringMap$1.Node}
             */
            GetSubNode(key: number): Kusto.Language.Utils.SubstringMap$1.Node<TValue> | null;
        }
        interface NodeFunc extends Function {
            <TValue>($TValue: Bridge.TypeRef<TValue>): {
                prototype: Node<TValue>;
                CharMap: Kusto.Language.Utils.SubstringMap$1.Node.CharMapFunc;
                SingleCharMap: Kusto.Language.Utils.SubstringMap$1.Node.SingleCharMapFunc;
                DictionaryMap: Kusto.Language.Utils.SubstringMap$1.Node.DictionaryMapFunc;
                ArrayCharMap: Kusto.Language.Utils.SubstringMap$1.Node.ArrayCharMapFunc;
                From(keyValuePairs: System.Collections.Generic.IEnumerable$1<System.Collections.Generic.KeyValuePair$2<string,TValue>> | null): Kusto.Language.Utils.SubstringMap$1.Node<TValue> | null;
            }
        }
        module Node {
            interface CharMap<TValue> {
                Add(key: number, node: Kusto.Language.Utils.SubstringMap$1.Node<TValue> | null): Kusto.Language.Utils.SubstringMap$1.Node.CharMap<TValue> | null;
                Get(key: number): Kusto.Language.Utils.SubstringMap$1.Node<TValue> | null;
            }
            interface CharMapFunc extends Function {
                <TValue>($TValue: Bridge.TypeRef<TValue>): {
                    prototype: CharMap<TValue>;
                    new (): CharMap<TValue>;
                }
            }

            interface SingleCharMap<TValue> extends Kusto.Language.Utils.SubstringMap$1.Node.CharMap<TValue> {
                Add(key: number, node: Kusto.Language.Utils.SubstringMap$1.Node<TValue> | null): Kusto.Language.Utils.SubstringMap$1.Node.CharMap<TValue> | null;
                Get(key: number): Kusto.Language.Utils.SubstringMap$1.Node<TValue> | null;
            }
            interface SingleCharMapFunc extends Function {
                <TValue>($TValue: Bridge.TypeRef<TValue>): {
                    prototype: SingleCharMap<TValue>;
                    new (key: number, node: Kusto.Language.Utils.SubstringMap$1.Node<TValue> | null): SingleCharMap<TValue>;
                }
            }

            interface DictionaryMap<TValue> extends Kusto.Language.Utils.SubstringMap$1.Node.CharMap<TValue> {
                Add(key: number, node: Kusto.Language.Utils.SubstringMap$1.Node<TValue> | null): Kusto.Language.Utils.SubstringMap$1.Node.CharMap<TValue> | null;
                Get(key: number): Kusto.Language.Utils.SubstringMap$1.Node<TValue> | null;
            }
            interface DictionaryMapFunc extends Function {
                <TValue>($TValue: Bridge.TypeRef<TValue>): {
                    prototype: DictionaryMap<TValue>;
                    new (kvps: System.Collections.Generic.KeyValuePair$2<number,Kusto.Language.Utils.SubstringMap$1.Node<TValue>>[] | null): DictionaryMap<TValue>;
                }
            }

            interface ArrayCharMap<TValue> extends Kusto.Language.Utils.SubstringMap$1.Node.CharMap<TValue> {
                Add(key: number, node: Kusto.Language.Utils.SubstringMap$1.Node<TValue> | null): Kusto.Language.Utils.SubstringMap$1.Node.CharMap<TValue> | null;
                Get(key: number): Kusto.Language.Utils.SubstringMap$1.Node<TValue> | null;
            }
            interface ArrayCharMapFunc extends Function {
                <TValue>($TValue: Bridge.TypeRef<TValue>): {
                    prototype: ArrayCharMap<TValue>;
                    new (count: number): ArrayCharMap<TValue>;
                }
            }
        }
    }

    /**
     * A table of strings accessible via lookup of string ranges
     *
     * @class Kusto.Language.Utils.TextKeyedDictionary$1
     * @implements  System.Collections.Generic.IEnumerable$1
     */
    interface TextKeyedDictionary$1<TValue> extends System.Collections.Generic.IEnumerable$1<TValue> {
        /**
         * Gets the corresponding value. Returns true if the value is found.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.TextKeyedDictionary$1
         * @memberof Kusto.Language.Utils.TextKeyedDictionary$1
         * @param   {string}     text      
         * @param   {number}     start     
         * @param   {number}     length    
         * @param   {TValue}     value
         * @return  {boolean}
         */
        TryGetValue(text: string | null, start: number, length: number, value: {v: TValue}): boolean;
        /**
         * Gets the corresponding value or adds it.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.TextKeyedDictionary$1
         * @memberof Kusto.Language.Utils.TextKeyedDictionary$1
         * @param   {string}    text        
         * @param   {TValue}    newValue
         * @return  {TValue}
         */
        GetOrAddValue(text: string | null, newValue: TValue): TValue;
        /**
         * Gets the corresponding value or adds it.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.TextKeyedDictionary$1
         * @memberof Kusto.Language.Utils.TextKeyedDictionary$1
         * @param   {string}    text        
         * @param   {number}    start       
         * @param   {number}    length      
         * @param   {TValue}    newValue
         * @return  {TValue}
         */
        GetOrAddValue$2(text: string | null, start: number, length: number, newValue: TValue): TValue;
        /**
         * Gets the corresponding value or adds it.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.TextKeyedDictionary$1
         * @memberof Kusto.Language.Utils.TextKeyedDictionary$1
         * @param   {string}         text         
         * @param   {System.Func}    evaluator
         * @return  {TValue}
         */
        GetOrAddValue$1(text: string | null, evaluator: {(arg1: string, arg2: number, arg3: number): TValue} | null): TValue;
        /**
         * Gets the corresponding value or adds it.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.TextKeyedDictionary$1
         * @memberof Kusto.Language.Utils.TextKeyedDictionary$1
         * @param   {string}         text         
         * @param   {number}         start        
         * @param   {number}         length       
         * @param   {System.Func}    evaluator
         * @return  {TValue}
         */
        GetOrAddValue$3(text: string | null, start: number, length: number, evaluator: {(arg1: string, arg2: number, arg3: number): TValue} | null): TValue;
        /**
         * True if the table contains the string value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.TextKeyedDictionary$1
         * @memberof Kusto.Language.Utils.TextKeyedDictionary$1
         * @param   {string}     text
         * @return  {boolean}
         */
        ContainsKey(text: string | null): boolean;
        /**
         * True if the table contains the sub string value.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.TextKeyedDictionary$1
         * @memberof Kusto.Language.Utils.TextKeyedDictionary$1
         * @param   {string}     text      
         * @param   {number}     start     
         * @param   {number}     length
         * @return  {boolean}
         */
        ContainsKey$1(text: string | null, start: number, length: number): boolean;
        /**
         * @instance
         * @public
         * @this Kusto.Language.Utils.TextKeyedDictionary$1
         * @memberof Kusto.Language.Utils.TextKeyedDictionary$1
         * @return  {System.Collections.Generic.IEnumerator$1}
         */
        GetEnumerator(): System.Collections.Generic.IEnumerator$1<TValue> | null;
        /**
         * @instance
         * @this Kusto.Language.Utils.TextKeyedDictionary$1
         * @memberof Kusto.Language.Utils.TextKeyedDictionary$1
         * @return  {System.Collections.IEnumerator}
         */
    }
    interface TextKeyedDictionary$1Func extends Function {
        <TValue>($TValue: Bridge.TypeRef<TValue>): {
            prototype: TextKeyedDictionary$1<TValue>;
            Key: Kusto.Language.Utils.TextKeyedDictionary$1.KeyFunc;
            /**
             * Construct a new empty {@link }
             *
             * @instance
             * @public
             * @this Kusto.Language.Utils.TextKeyedDictionary$1
             * @memberof Kusto.Language.Utils.TextKeyedDictionary$1
             * @return  {void}
             */
            new (): TextKeyedDictionary$1<TValue>;
        }
    }
    var TextKeyedDictionary$1: TextKeyedDictionary$1Func;
    module TextKeyedDictionary$1 {
        /**
         * @private
         * @class Kusto.Language.Utils.TextKeyedDictionary$1.Key
         * @implements  System.IEquatable$1
         */
        interface Key<TValue> extends System.IEquatable$1<Kusto.Language.Utils.TextKeyedDictionary$1.Key<TValue>> {
            /**
             * @instance
             * @public
             * @this Kusto.Language.Utils.TextKeyedDictionary$1.Key
             * @memberof Kusto.Language.Utils.TextKeyedDictionary$1.Key
             * @param   {Kusto.Language.Utils.TextKeyedDictionary$1.Key}    other
             * @return  {boolean}
             */
            equalsT(other: Kusto.Language.Utils.TextKeyedDictionary$1.Key<TValue>): boolean;
            /**
             * @instance
             * @public
             * @override
             * @this Kusto.Language.Utils.TextKeyedDictionary$1.Key
             * @memberof Kusto.Language.Utils.TextKeyedDictionary$1.Key
             * @return  {number}
             */
            getHashCode(): number;
            $clone(to: Kusto.Language.Utils.TextKeyedDictionary$1.Key<TValue>): Kusto.Language.Utils.TextKeyedDictionary$1.Key<TValue>;
        }
        interface KeyFunc extends Function {
            <TValue>($TValue: Bridge.TypeRef<TValue>): {
                prototype: Key<TValue>;
                /**
                 * @instance
                 * @public
                 * @this Kusto.Language.Utils.TextKeyedDictionary$1.Key
                 * @memberof Kusto.Language.Utils.TextKeyedDictionary$1.Key
                 * @param   {string}    text
                 * @return  {void}
                 */
                $ctor1: {
                    new (text: string | null): Key<TValue>
                };
                /**
                 * @instance
                 * @public
                 * @this Kusto.Language.Utils.TextKeyedDictionary$1.Key
                 * @memberof Kusto.Language.Utils.TextKeyedDictionary$1.Key
                 * @param   {string}    text      
                 * @param   {number}    start     
                 * @param   {number}    length
                 * @return  {void}
                 */
                $ctor2: {
                    new (text: string | null, start: number, length: number): Key<TValue>
                };
                new (): Key<TValue>;
                ctor: {
                    new (): Key<TValue>
                };
                /**
                 * Compute the hashcode of a sub-string using FNV-1a
                 See http://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function
                 *
                 * @static
                 * @private
                 * @this Kusto.Language.Utils.TextKeyedDictionary$1.Key
                 * @memberof Kusto.Language.Utils.TextKeyedDictionary$1.Key
                 * @param   {string}    text      
                 * @param   {number}    start     
                 * @param   {number}    length
                 * @return  {number}
                 */
            }
        }
    }

    interface TextKeyedDictionaryExtensions {
    }
    interface TextKeyedDictionaryExtensionsFunc extends Function {
        prototype: TextKeyedDictionaryExtensions;
        new (): TextKeyedDictionaryExtensions;
        ToTextKeyedDictionary<TSource, TValue>(TSource: {prototype: TSource}, TValue: {prototype: TValue}, source: System.Collections.Generic.IEnumerable$1<TSource> | null, keySelector: {(arg: TSource): string} | null, valueSelector: {(arg: TSource): TValue} | null): Kusto.Language.Utils.TextKeyedDictionary$1<TValue> | null;
    }
    var TextKeyedDictionaryExtensions: TextKeyedDictionaryExtensionsFunc;

    interface ThreadSafeDictionary$2<TKey,TValue> {
        Count: number;
        Keys: System.Collections.Generic.ICollection$1<TKey> | null;
        Values: System.Collections.Generic.ICollection$1<TValue> | null;
        TryGetValue(key: TKey, value: {v: TValue}): boolean;
        TryAdd(key: TKey, value: TValue): boolean;
        GetOrAdd(key: TKey, value: TValue): TValue;
        GetOrAdd$1(key: TKey, valueFactory: {(arg: TKey): TValue} | null): TValue;
        AddOrUpdate(key: TKey, value: TValue): void;
        AddOrUpdate$1(key: TKey, addFactory: {(arg: TKey): TValue} | null, updateFactory: {(arg1: TKey, arg2: TValue): TValue} | null): void;
        AddOrUpdate$2(key: TKey, addFactory: {(arg1: TKey, arg2: TValue): TValue} | null, updateFactory: {(arg1: TKey, arg2: TValue, arg3: TValue): TValue} | null, value: TValue): void;
    }
    interface ThreadSafeDictionary$2Func extends Function {
        <TKey, TValue>($TKey: Bridge.TypeRef<TKey>, $TValue: Bridge.TypeRef<TValue>): {
            prototype: ThreadSafeDictionary$2<TKey,TValue>;
            new (): ThreadSafeDictionary$2<TKey,TValue>;
            ctor: {
                new (): ThreadSafeDictionary$2<TKey,TValue>
            };
            $ctor1: {
                new (comparer: System.Collections.Generic.IEqualityComparer$1<TKey> | null): ThreadSafeDictionary$2<TKey,TValue>
            };
        }
    }
    var ThreadSafeDictionary$2: ThreadSafeDictionary$2Func;

    interface ValueComparer {
    }
    interface ValueComparerFunc extends Function {
        prototype: ValueComparer;
        new (): ValueComparer;
        /**
         * Returns true if the values are equivalent.
         The values do not have to be the same type.
         *
         * @static
         * @public
         * @this Kusto.Language.Utils.ValueComparer
         * @memberof Kusto.Language.Utils.ValueComparer
         * @param   {System.Object}    x                
         * @param   {System.Object}    y                
         * @param   {boolean}          caseSensitive
         * @return  {boolean}
         */
        AreEquivalent(x: any | null, y: any | null, caseSensitive?: boolean): boolean;
        /**
         * Gets the best type for comparing between the two specified types,
         such that ChangeType will not throw.
         *
         * @static
         * @private
         * @this Kusto.Language.Utils.ValueComparer
         * @memberof Kusto.Language.Utils.ValueComparer
         * @param   {System.Type}    typeA            
         * @param   {System.Type}    typeB            
         * @param   {System.Type}    comparingType
         * @return  {boolean}
         */
    }
    var ValueComparer: ValueComparerFunc;

    /**
     * An immutable list over a normal mutable list that only supports adding new items.
     Only one {@link } instance owns the underlying list and can add to it. 
     When a new {@link } is constructed by adding items to the owner, it becomes the new owner.
     When a new {@link } is constructed by adding items to a non-owner, it copies the items it is allowed to see into a new list, making it the owner of the new list.
     *
     * @public
     * @class Kusto.Language.Utils.SafeList$1
     * @implements  System.Collections.Generic.IReadOnlyList$1
     * @implements  System.Collections.Generic.IEnumerable$1
     * @implements  System.Collections.IEnumerable
     */
    interface SafeList$1<T> extends System.Collections.Generic.IReadOnlyList$1<T>,System.Collections.Generic.IEnumerable$1<T>,System.Collections.IEnumerable {
        Count: number;
        getItem(index: number): T;
        /**
         * Creates a new list with the same elements as this list plus the item specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.SafeList$1
         * @memberof Kusto.Language.Utils.SafeList$1
         * @param   {T}                                  item
         * @return  {Kusto.Language.Utils.SafeList$1}
         */
        AddItem(item: T): Kusto.Language.Utils.SafeList$1<T> | null;
        /**
         * Creates a new list with the same elements as this list plus the items specified.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.SafeList$1
         * @memberof Kusto.Language.Utils.SafeList$1
         * @param   {System.Collections.Generic.IEnumerable$1}    items
         * @return  {Kusto.Language.Utils.SafeList$1}
         */
        AddItems(items: System.Collections.Generic.IEnumerable$1<T> | null): Kusto.Language.Utils.SafeList$1<T> | null;
        GetEnumerator(): Kusto.Language.Utils.SafeList$1.Enumerator<T>;
    }
    interface SafeList$1Func extends Function {
        <T>($T: Bridge.TypeRef<T>): {
            prototype: SafeList$1<T>;
            Enumerator: Kusto.Language.Utils.SafeList$1.EnumeratorFunc;
            ctor: {
                new (items: System.Collections.Generic.IEnumerable$1<T> | null): SafeList$1<T>
            };
            /**
             * An empty list
             *
             * @static
             * @public
             * @readonly
             * @memberof Kusto.Language.Utils.SafeList$1
             * @type Kusto.Language.Utils.SafeList$1
             */
            Empty: Kusto.Language.Utils.SafeList$1<T> | null;
        }
    }
    var SafeList$1: SafeList$1Func;
    module SafeList$1 {
        interface Enumerator<T> extends System.Collections.Generic.IEnumerator$1<T>,System.Collections.IEnumerator {
            Current: T;
            moveNext(): boolean;
            Dispose(): void;
            reset(): void;
            getHashCode(): number;
            equals(o: Kusto.Language.Utils.SafeList$1.Enumerator<T>): boolean;
            $clone(to: Kusto.Language.Utils.SafeList$1.Enumerator<T>): Kusto.Language.Utils.SafeList$1.Enumerator<T>;
        }
        interface EnumeratorFunc extends Function {
            <T>($T: Bridge.TypeRef<T>): {
                prototype: Enumerator<T>;
                $ctor1: {
                    new (list: System.Collections.Generic.IReadOnlyList$1<T> | null, start: number, length: number): Enumerator<T>
                };
                new (): Enumerator<T>;
                ctor: {
                    new (): Enumerator<T>
                };
            }
        }
    }

    /**
     * A class that maintains a set of unique names.
     *
     * @class Kusto.Language.Utils.UniqueNameTable
     */
    interface UniqueNameTable {
        /**
         * Adds names already known to be unique to the table.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.UniqueNameTable
         * @memberof Kusto.Language.Utils.UniqueNameTable
         * @param   {System.Collections.Generic.IEnumerable$1}    names
         * @return  {void}
         */
        AddNames(names: System.Collections.Generic.IEnumerable$1<string> | null): void;
        AddName(name: string | null): void;
        /**
         * Adds a name to the table if it is unique, otherwise creates a new unique name.
         Returns either the original unique name or the newly created name.
         *
         * @instance
         * @public
         * @this Kusto.Language.Utils.UniqueNameTable
         * @memberof Kusto.Language.Utils.UniqueNameTable
         * @param   {string}    name        The candidate name that you would prefer to use.
         * @param   {string}    baseName    An optional base name to use when formulating a new name.
         * @return  {string}
         */
        GetOrAddName(name: string | null, baseName?: string | null): string | null;
        Clear(): void;
    }
    interface UniqueNameTableFunc extends Function {
        prototype: UniqueNameTable;
        new (): UniqueNameTable;
    }
    var UniqueNameTable: UniqueNameTableFunc;
}
