import { IEvent, Uri, editor } from 'monaco-editor';
import { ISqlExprWorker } from './types';
import { SqlExprDefaults } from './sql-expr-defaults';
/**
 * Returns the sql-expression worker for the model uris.
 * @param uris The model uris for which to get the worker.
 * @returns The sql-expression worker.
 */
export declare function getSqlExprWorker(...uris: Uri[]): Promise<ISqlExprWorker>;
export interface ISqlExprDiagnosticEvent {
    /**
     * The uri of the model for which the diagnostics changed.
     */
    uri: Uri;
    /**
     * The diagnostics for the model.
     */
    diagnostics: editor.IMarkerData[];
}
export interface ISqlExprDiagnosticService {
    onDiagnosticsChange: IEvent<ISqlExprDiagnosticEvent>;
}
declare class SqlExprDiagnosticService implements ISqlExprDiagnosticService {
    private _onDiagnosticsChange;
    /**
     * An event to signal changes to the diagnostics.
     * The event value is the uri string and the diagnostics.
     */
    get onDiagnosticsChange(): IEvent<ISqlExprDiagnosticEvent>;
    /**
     * Fires the diagnostics change event.
     * @param uri The uri of the model for which the diagnostics changed.
     * @param diagnostics The diagnostics for the model.
     */
    fireDiagnosticsChange(uri: Uri, diagnostics: editor.IMarkerData[]): void;
}
export type { SqlExprDiagnosticService };
/**
 *
 * @returns The Sql Expression Diagnostic Service.
 */
export declare function getSqlExprDiagnosticService(): ISqlExprDiagnosticService;
export declare function setupMode(defaults: SqlExprDefaults): void;
