import { FunctionlessNode } from "./node";
import { NodeInstance } from "./node-ctor";
import { NodeKind } from "./node-kind";
/**
 * A memory-efficient representation of a serializer {@link FunctionlessNode} as an s-expression tuple.
 *
 * ```ts
 * ex.
 * // class representation
 * new Identifier("id"),
 *
 * // tuple s-expr representation
 * [Identifier, "id"]
 * ```
 */
export declare type SExpr<Node extends FunctionlessNode = FunctionlessNode> = [
    kind: Node["kind"],
    ...args: any[]
];
/**
 * Parse a {@link SExpr} representation of a {@link FunctionlessNode} into its class form.
 * @param expr
 * @returns
 */
export declare function parseSExpr<Kind extends NodeKind>(expr: [kind: Kind, ...args: any[]]): NodeInstance<Kind>;
//# sourceMappingURL=s-expression.d.ts.map