import { PreparedStatement } from '../../types';
import { SelectColumns } from '../columns/types';
import { ConditionOptions } from '../conditionals/types';
import { SelectTable } from '../types';
export interface AliasExpressionObject {
    [key: string]: string;
}
export declare const isAliasExpressionObject: (val: any) => val is AliasExpressionObject;
declare type JoinTable = SelectTable;
declare type JoinType = 'inner' | 'left' | 'right';
export interface JoinObject {
    /**
     * Table or expression Object
     */
    table: JoinTable;
    on?: ConditionOptions;
    type?: JoinType;
    columns?: SelectColumns;
}
export declare const isJoinObject: (val: any) => val is JoinObject;
export declare type SelectJoin = JoinObject | Array<JoinObject> | undefined;
export interface JoinReturnObject {
    joinPreparedStatement: PreparedStatement;
    columnsPreparedStatement: PreparedStatement;
}
export {};
