import type { ParseResult } from 'yuku-parser';
export type AnyNode = Record<string, any>;
export type ProgramNode = AnyNode & {
    body: AnyNode[];
};
export declare const getProgram: (ast: ParseResult | AnyNode) => ProgramNode;
export declare const getPatternIdentifierNames: (pattern: AnyNode | null | undefined, names?: Set<string>) => Set<string>;
export declare const getIdentifierNamesFromPattern: (pattern: AnyNode | null | undefined) => string[];
export declare const patternIncludesName: (pattern: AnyNode | null | undefined, name: string) => boolean;
export declare const getExportedName: (node: AnyNode | null | undefined) => string | null;
export declare const identifier: (name: string) => AnyNode;
export declare const literal: (value: string) => AnyNode;
export declare const callExpression: (callee: AnyNode, args: AnyNode[]) => AnyNode;
export declare const importDeclaration: (specifiers: Array<{
    local: string;
    imported: string;
}>, source: string) => AnyNode;
export declare const exportSpecifier: (local: string, exported: string) => AnyNode;
export declare const exportNamedDeclaration: (specifiers: AnyNode[]) => AnyNode;
export declare const variableDeclaration: (name: string, init: AnyNode) => AnyNode;
export declare const removeFromArray: <T>(array: T[], value: T) => void;
