/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */
import type { RunJsAuthoringContext } from '../internal-types';
export declare function scanJavaScriptSource(source: string, ast?: any, context?: RunJsAuthoringContext, modelUse?: string): {
    source: string;
    masked: string;
    functionRanges: import("../internal-types").SourceRange[];
    blockRanges: import("../internal-types").SourceRange[];
    sourceBindings: import("../internal-types").SourceBinding[];
    unknownBareGlobals: {
        index: number;
        name: string;
        suggestedCapability?: string;
    }[];
    ctxRenderCalls: {
        index: number;
        match: string;
    }[];
    topLevelCtxRenderCalls: {
        index: number;
        match: string;
    }[];
    topLevelReachableCtxRenderCalls: {
        capability: string;
        index: number;
    }[];
    topLevelReturns: {
        index: number;
        match: string;
    }[];
    ctxRunjsCalls: {
        index: number;
        match: string;
    }[];
    nestedRunjsCalls: {
        capability: string;
        index: number;
    }[];
    invalidReactRuntimeBindings: import("../internal-types").InvalidReactRuntimeBinding[];
    ctxRequestCalls: {
        index: number;
        match: string;
    }[];
    invalidApiResourceCalls: {
        index: number;
        match: string;
        method: string;
    }[];
    invalidResourceActionCalls: {
        actionName: string;
        allowedActions?: string[];
        capability: string;
        collectionName?: string;
        dataSourceKey?: string;
        endpoint?: string;
        index: number;
        invalidReason: string;
        resourceType?: import("../internal-types").FlowResourceInstanceType;
        suggestedMethod?: string;
    }[];
    invalidResourceTypeCalls: {
        capability: string;
        expression?: string;
        index: number;
        resourceType?: string;
        ruleId: string;
    }[];
    invalidFlowResourceListCalls: {
        capability: string;
        index: number;
    }[];
    invalidFlowResourceMethodCalls: {
        capability: string;
        index: number;
        method: string;
        resourceType?: import("../internal-types").FlowResourceInstanceType;
        suggestedMethod?: string;
    }[];
    invalidResourceFilterCalls: {
        availableFields?: string[];
        capability: string;
        collectionName?: string;
        dataSourceKey?: string;
        fieldInterface?: string;
        fieldPath?: string;
        fieldType?: string;
        invalidShape?: string;
        index: number;
        invalidReason?: string;
        invalidValue?: any;
        message: string;
        operator?: string;
        repairExample?: Record<string, any>;
        repairHint?: string;
        resourceType?: import("../internal-types").FlowResourceInstanceType;
        ruleId: string;
        unsupportedKeys?: string[];
        suggestedOperator?: string;
        suggestedValue?: any;
        examples?: Record<string, any>;
    }[];
    resourceCallsInReactHooks: import("../internal-types").ResourceCallInReactHook[];
    topLevelReactHookCalls: {
        hook: string;
        index: number;
        match: string;
    }[];
    unboundReactCreateElementCalls: {
        index: number;
    }[];
    reactComponentFunctionCalls: {
        index: number;
        component: string;
        capability: string;
    }[];
    reactAsyncComponentReferences: {
        capability: string;
        component: string;
        index: number;
    }[];
    reactComponentCtxRenderCalls: {
        capability: string;
        component: string;
        index: number;
    }[];
    sharedCtxResourceCallsInFunctions: import("../internal-types").SharedCtxResourceCallInFunction[];
    ctxRenderComponentSignatureCalls: {
        index: number;
        component: string;
        capability: string;
    }[];
    reactComponentPropReferences: {
        index: number;
        component: string;
        capability: string;
        prop: string;
    }[];
    directDomWrites: {
        index: number;
        match: string;
    }[];
    directDomAliases: {
        alias: string;
        index: number;
    }[];
    windowDocumentNavigatorUses: {
        root: string;
        member: string;
        index: number;
    }[];
    windowDocumentNavigatorAliases: {
        alias: string;
        root: string;
        index: number;
    }[];
    ctxAliases: {
        alias: string;
        index: number;
    }[];
    ctxLibMemberCaseMismatches: import("../internal-types").CtxLibMemberCaseMismatch[];
    invalidCtxApiMemberAccesses: {
        capability: string;
        index: number;
        match?: string;
        matchIndex?: number;
        member?: string;
        ruleId: string;
    }[];
    invalidCtxNonFunctionCalls: {
        capability: string;
        index: number;
        member: string;
        ruleId: "runjs-ctx-member-not-callable";
    }[];
    invalidCtxLibMemberAccesses: import("../internal-types").InvalidCtxLibMemberAccess[];
    forbiddenBareGlobals: {
        name: string;
        index: number;
    }[];
    ctxMemberAccesses: {
        member: string;
        index: number;
    }[];
    dynamicCtxAccesses: {
        index: number;
        match: string;
    }[];
    isTopLevelFunctionWrapper: boolean;
};
