import * as ts from "ts-morph";
import { CompilerState } from "../CompilerState";
import { HasParameters } from "../types";
export declare function checkReserved(name: string, node: ts.Node, checkNamespace?: boolean): void;
export declare function checkMethodReserved(name: string, node: ts.Node): void;
export declare const enum CompilerDirective {
    Client = "client",
    Server = "server",
    Array = "array",
    Map = "map",
    Set = "set",
    String = "string"
}
/**
 * Searches `node` recursively for directives. Returns either the first directive from the given list that it finds.
 * If it cannot find a directive from the list, it returns `undefined`.
 * Search is:
 *  - left -> right
 *  - inner -> outer
 * @param node JSDocable node to search
 * @param directives list of directives to search for
 */
export declare function getCompilerDirective(symbol: ts.Symbol, directives: Array<CompilerDirective>): CompilerDirective | undefined;
export declare function checkApiAccess(state: CompilerState, node: ts.Node): void;
export declare function checkNonAny<T extends ts.Node>(node: T, checkArrayType?: boolean): T;
export declare function checkReturnsNonAny(node: HasParameters): void;
