import { Label } from './Label';
import { Variable } from './Variable';
declare type VarLabels = [(Variable | Label)?, ...Label[]];
export declare class Step implements Root, Match, Return {
    private matchParts;
    private returnParts;
    match(variable: Variable): Match;
    match(...Labels: Label[]): Match;
    match(...varLabels: VarLabels): Match;
    return(...variables: Variable[]): Return;
    getCypher(): string;
    cleanUp(): void;
}
export interface Match extends BaseStep {
    return(...variables: Variable[]): Return;
}
export interface Return extends BaseStep {
    getCypher(): string;
}
export interface Root extends BaseStep {
    match(variable: Variable): Match;
    match(...Labels: Label[]): Match;
    match(...varLabels: VarLabels): Match;
}
export interface BaseStep {
    cleanUp(): void;
    getCypher(): string;
}
export {};
