import { FormItemDisplay, FormTemplate } from './form.js';
export interface Plugin {
    id: string;
    name: string;
    type: PluginType;
    moduleName: string;
    modulePath: string;
    iconLocation: string;
    openApiSpecRef?: string;
    docsUrl?: string;
    actionFormDocLinks?: Array<{
        url: string;
        name: string;
        display?: FormItemDisplay;
    }>;
    responseType: PluginResponseType;
    rawRequestName?: string;
    hasRawRequest: boolean;
    datasourceTemplate?: FormTemplate;
    actionTemplate: FormTemplate;
    demoData?: Record<string, unknown>;
    hasTest?: boolean;
    hasMetadata?: boolean;
    isStreamable?: boolean;
    kind?: IntegrationKind;
    responseTypeOverride?: ResponseTypeOverride;
}
export declare enum PluginType {
    DB = "DB",
    API = "API",
    JS = "JS",
    CODE = "CODE"
}
export declare enum PluginResponseType {
    TABLE = "TABLE",
    JSON = "JSON"
}
export type ResponseTypeOverride = Record<string, {
    values: string[];
    responseType: PluginResponseType;
}>;
export declare const VERSION_INITIAL: SemVer;
export type SemVer = string;
export type SupportedPluginVersions = Record<Plugin['id'], SemVer[]>;
export type PluginExecutionVersions = Record<Plugin['id'], SemVer>;
export type PluginMetadata = {
    superblocksMetadata?: {
        pluginVersion?: SemVer;
        syncedFromProfileId?: string;
    };
};
export declare enum RestApiBodyDataType {
    JSON = "jsonBody",
    RAW = "rawBody",
    FORM = "formData",
    FILE_FORM = "fileForm"
}
export declare enum RestApiFields {
    HEADERS = "headers",
    PARAMS = "params",
    FILE_FORM_KEY = "fileFormKey",
    FILE_NAME = "fileName",
    BODY = "body",
    BODY_TYPE = "bodyType",
    FORM_DATA = "formData",
    PATH = "path",
    HTTP_METHOD = "httpMethod",
    URL_BASE = "urlBase",
    URL_PATH = "urlPath",
    AUTH_TYPE = "authType",
    RESPONSE_TYPE = "responseType",
    OPENAPI_TENANT_NAME = "openApiTenantName",
    VERBOSE_HTTP_OUTPUT = "verboseHttpOutput",
    DO_NOT_FAIL_ON_REQUEST_ERROR = "doNotFailOnRequestError"
}
export declare const getRestApiFieldDisplayName: (field: RestApiFields) => string;
export declare const getRestApiDataTypeDisplayName: (dataType: RestApiBodyDataType) => string;
export declare const getRestApiBodyLabel: (dataType: RestApiBodyDataType) => string;
export declare const getPluginExecutionVersion: (pluginExecutionVersions: PluginExecutionVersions, pluginId: string) => SemVer;
export declare const setPluginExecutionVersion: (pluginExecutionVersions: PluginExecutionVersions, pluginId: string, pluginVersion: SemVer) => void;
export declare enum IntegrationKind {
    SECRET = "SECRET",
    PLUGIN = "PLUGIN"
}
export * from './form.js';
export * from './language.js';
export * from './evaluation.js';
export * from './integration.js';
//# sourceMappingURL=index.d.ts.map