import { FromItem } from './SelectFromStep';
import { Condition } from '../../models';
import { OnStep } from './AfterFromStep';
import { Artifacts, BaseStep } from '../BaseStep';
declare abstract class BaseJoinStep extends BaseStep {
    private readonly joinType;
    private readonly fromItem;
    protected constructor(joinType: 'JOIN' | 'LEFT JOIN' | 'RIGHT JOIN' | 'INNER JOIN' | 'FULL OUTER JOIN', prevStep: BaseStep, fromItem: FromItem);
    on(condition: Condition): OnStep;
    getStepStatement(artifacts?: Artifacts): string;
    getStepArtifacts(): Artifacts;
}
export declare class JoinStep extends BaseJoinStep {
    constructor(prevStep: BaseStep, fromItem: FromItem);
}
export declare class LeftJoinStep extends BaseJoinStep {
    constructor(prevStep: BaseStep, fromItem: FromItem);
}
export declare class RightJoinStep extends BaseJoinStep {
    constructor(prevStep: BaseStep, fromItem: FromItem);
}
export declare class InnerJoinStep extends BaseJoinStep {
    constructor(prevStep: BaseStep, fromItem: FromItem);
}
export declare class FullOuterJoinStep extends BaseJoinStep {
    constructor(prevStep: BaseStep, fromItem: FromItem);
}
export {};
