import { PlywoodRequester } from 'plywood-base-api';
import { Attributes } from '../datatypes/attributeInfo';
import { SQLDialect } from '../dialect/baseDialect';
import { FilterExpression, SortExpression } from '../expressions';
import { External, ExternalJS, ExternalValue, IntrospectionDepth, QueryAndPostTransform } from './baseExternal';
export declare abstract class SQLExternal extends External {
    static type: string;
    static jsToValue(parameters: ExternalJS, requester: PlywoodRequester<any>): ExternalValue;
    withQuery?: string;
    dialect: SQLDialect;
    constructor(parameters: ExternalValue, dialect: SQLDialect);
    valueOf(): ExternalValue;
    canHandleFilter(_filter: FilterExpression): boolean;
    canHandleSort(_sort: SortExpression): boolean;
    protected capability(cap: string): boolean;
    protected sqlToQuery(sql: string): any;
    protected getFrom(): string;
    getQueryAndPostTransform(): QueryAndPostTransform<string>;
    protected abstract getIntrospectAttributes(depth: IntrospectionDepth): Promise<Attributes>;
}
//# sourceMappingURL=sqlExternal.d.ts.map