import { SqlPrintToken, SqlPrintTokenContainerType } from "../models/SqlPrintToken";
import type { WithClauseStyle } from "./SqlFormatter";
export type CommaBreakStyle = 'none' | 'before' | 'after';
export interface OnelineFormattingOptions {
    parenthesesOneLine: boolean;
    betweenOneLine: boolean;
    valuesOneLine: boolean;
    inOneLine: boolean;
    joinOneLine: boolean;
    caseOneLine: boolean;
    subqueryOneLine: boolean;
    insertColumnsOneLine: boolean;
    withClauseStyle: WithClauseStyle;
}
interface FormatInsertClauseResult {
    handled: boolean;
    text?: string;
}
export declare class OnelineFormattingHelper {
    private readonly options;
    constructor(options: OnelineFormattingOptions);
    shouldFormatContainer(token: SqlPrintToken, shouldIndentNested: boolean): boolean;
    isInsertClauseOneline(parentContainerType?: SqlPrintTokenContainerType): boolean;
    shouldInsertJoinNewline(insideWithClause: boolean): boolean;
    resolveCommaBreak(parentContainerType: SqlPrintTokenContainerType | undefined, commaBreak: CommaBreakStyle, cteCommaBreak: CommaBreakStyle, valuesCommaBreak: CommaBreakStyle): CommaBreakStyle;
    shouldSkipInsertClauseSpace(parentContainerType: SqlPrintTokenContainerType | undefined, nextToken: SqlPrintToken | undefined, currentLineText: string): boolean;
    shouldSkipCommentBlockSpace(parentContainerType: SqlPrintTokenContainerType | undefined, insideWithClause: boolean): boolean;
    formatInsertClauseToken(text: string, parentContainerType: SqlPrintTokenContainerType | undefined, currentLineText: string, ensureTrailingSpace: () => void): FormatInsertClauseResult;
}
export {};
