import { Action, Context, Script } from './index.js';
export type InspectionNode = Script | Context | Action;
export declare enum InspectionLevel {
    Info = "info",
    Warn = "warn",
    Error = "error"
}
export interface InspectionReport {
    name: string;
    message: string;
    level: InspectionLevel;
    details?: any;
    action?: Action;
    context?: Context;
}
export interface InspectionClass {
    new (script: Script): Inspection<InspectionNode>;
}
export declare abstract class Inspection<T extends InspectionNode> {
    abstract inspect(node: T): Iterable<InspectionReport>;
}
export declare abstract class ScriptInspection extends Inspection<Script> {
}
export declare abstract class ContextInspection extends Inspection<Context> {
}
export declare abstract class ActionInspection extends Inspection<Action> {
}
//# sourceMappingURL=inspection.d.ts.map