import { LanguageVariant, SourceFile, TextChangeRange, SymbolDisplayPart, LanguageService, LanguageServiceHost, CompilerOptions, IScriptSnapshot, ScriptTarget, CreateSourceFileOptions, ScriptKind, DocumentRegistry, LanguageServiceMode, LpcFileHandler } from "./_namespaces/lpc.js";
export declare function getDefaultCompilerOptions(): CompilerOptions;
export declare function createLanguageService(host: LanguageServiceHost, fileHandler: LpcFileHandler, documentRegistry?: DocumentRegistry, syntaxOnlyOrLanguageServiceMode?: boolean | LanguageServiceMode): LanguageService;
export declare function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTargetOrOptions: ScriptTarget | CreateSourceFileOptions, version: string, setNodeParents: boolean, languageVariant: LanguageVariant, scriptKind?: ScriptKind): SourceFile;
export declare function updateLanguageServiceSourceFile(sourceFile: SourceFile, globalIncludes: string[], configDefines: ReadonlyMap<string, string>, fileHandler: LpcFileHandler, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange | undefined, languageVariant: LanguageVariant, reportParsedDefines: boolean, aggressiveChecks?: boolean): SourceFile;
/**
 * Convert display parts to a string
 * @param displayParts array of parts
 * @returns a string
 */
export declare function displayPartsToString(displayParts: SymbolDisplayPart[] | undefined): string;
export declare enum SemicolonPreference {
    Ignore = "ignore",
    Insert = "insert",
    Remove = "remove"
}
export declare enum IndentStyle {
    None = 0,
    Block = 1,
    Smart = 2
}
export interface EditorSettings {
    baseIndentSize?: number;
    indentSize?: number;
    tabSize?: number;
    newLineCharacter?: string;
    convertTabsToSpaces?: boolean;
    indentStyle?: IndentStyle;
    trimTrailingWhitespace?: boolean;
}
export interface FormatCodeSettings extends EditorSettings {
    readonly insertSpaceAfterCommaDelimiter?: boolean;
    readonly insertSpaceAfterSemicolonInForStatements?: boolean;
    readonly insertSpaceBeforeAndAfterBinaryOperators?: boolean;
    readonly insertSpaceAfterConstructor?: boolean;
    readonly insertSpaceAfterKeywordsInControlFlowStatements?: boolean;
    readonly insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean;
    readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean;
    readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean;
    readonly insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean;
    readonly insertSpaceAfterOpeningAndBeforeClosingEmptyBraces?: boolean;
    readonly insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean;
    readonly insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean;
    readonly insertSpaceAfterTypeAssertion?: boolean;
    readonly insertSpaceBeforeFunctionParenthesis?: boolean;
    readonly placeOpenBraceOnNewLineForFunctions?: boolean;
    readonly placeOpenBraceOnNewLineForControlBlocks?: boolean;
    readonly insertSpaceBeforeTypeAnnotation?: boolean;
    readonly indentMultiLineObjectLiteralBeginningOnBlankLine?: boolean;
    readonly semicolons?: SemicolonPreference;
    readonly indentSwitchCase?: boolean;
}
export declare function getDefaultFormatCodeSettings(newLineCharacter?: string): FormatCodeSettings;
//# sourceMappingURL=services.d.ts.map