import { ApexFormatterConfig, ParserData, Token } from "@aurahelper/core";
/**
 * Class to format any Apex Class with a selected configuration to format code as you want
 */
export declare class ApexFormatter {
    /**
     * Method to get a default formatter config object
     *
     * @returns {ApexFormatterConfig} Returns a default formatter config object
     */
    static config(): ApexFormatterConfig;
    /**
     * Method to format an Apex Class with the selected options
     * @param {string | Token[]} tokensOrContent Class file path or string file content or Apex Class Tokens (Use ApexTokenizer)
     * @param {ApexFormatterConfig | { [key: string]: any }} [config] Apex formatter config object or VSCode Config JSON object
     * @param {ParserData} [systemData] System data like System Apex Classes or Namespaces to tokenize apex class if pathContentOrTokens is a class content or file path. Can get it with System Class from System Module
     * @param {number} [tabSize] Tab size to format
     * @param {boolean} [insertSpaces] True to insert spaces instead tabs
     *
     * @returns {string} Returns the Apex Class content formatted
     *
     * @throws {WrongDatatypeException} If pathContentOrTokens datatype is not an string, path or file tokens
     * @throws {WrongFilePathException} If the file Path is not a string or can't convert to absolute path
     * @throws {FileNotFoundException} If the file not exists or not have access to it
     * @throws {InvalidFilePathException} If the path is not a file
     */
    static format(tokensOrContent: string | Token[], config?: ApexFormatterConfig | {
        [key: string]: any;
    }, systemData?: ParserData, tabSize?: number, insertSpaces?: boolean): string;
}
