import { CommonTokenStream } from 'antlr4ts';
import { CreateTableContext } from '../lib/FlinkSQLParser';
import { FormatVisitor } from './format.visitor';
export interface PreviewTableContext {
    catalogName: string;
    databaseName: string;
    tableName: string;
    temporary: boolean;
}
export interface PreviewSourceContext extends PreviewTableContext {
    uri?: string;
}
export declare type PreviewSinkContext = PreviewTableContext;
export interface PreviewContext {
    sources: PreviewSourceContext[];
    sinks: PreviewSinkContext[];
}
export declare class PreviewVisitor extends FormatVisitor {
    private context;
    constructor(tokens: CommonTokenStream, context: PreviewContext);
    visitHints(): string;
    visitPartitionedBy(): string;
    visitCreateTable(ctx: CreateTableContext): string;
    private handleCreateTemporaryTable;
    private compareTableName;
}
/**
 * For every non-temporary table, we need to create a temporary table LIKE it, so we can preview them.
 *
 * @param origin original preview script
 * @param context preview context, including source and sink tables
 */
export declare function appendCreateNonTemporaryTables(origin: string, context: PreviewContext): string;
