import { KNativePointer } from "../../src/reexport-for-generated";
import { Es2pandaAstNodeType } from "./../Es2pandaEnums";
import { Es2pandaTSIndexSignatureKind } from "./../Es2pandaEnums";
import { Expression } from "./Expression";
import { TypeNode } from "./TypeNode";
import { TypedAstNode } from "./TypedAstNode";
import { checker } from "./checker";
export declare class TSIndexSignature extends TypedAstNode {
    constructor(pointer: KNativePointer, astNodeType: Es2pandaAstNodeType);
    static createTSIndexSignature(param: Expression | undefined, typeAnnotation: TypeNode | undefined, readonly_arg: boolean): TSIndexSignature;
    static updateTSIndexSignature(original: TSIndexSignature | undefined, param: Expression | undefined, typeAnnotation: TypeNode | undefined, readonly_arg: boolean): TSIndexSignature;
    get param(): Expression | undefined;
    get typeAnnotation(): TypeNode | undefined;
    get readonly(): boolean;
    get kind(): Es2pandaTSIndexSignatureKind;
    get tsType(): checker.Type | undefined;
    get preferredType(): checker.Type | undefined;
    protected readonly brandTSIndexSignature: undefined;
}
export declare function isTSIndexSignature(node: object | undefined): node is TSIndexSignature;
