/**
 * Parse `oxlint --format json` output. oxlint emits ONE JSON object:
 *   { diagnostics: [ { message, code:"eslint(no-cond-assign)", severity:"warning"|"error",
 *                      filename, help, url, labels:[ { span:{ offset, length, line, column } } ] } ],
 *     number_of_files, … }
 * The line comes from the first label's span. VERIFIED against oxlint 1.73.0.
 * EXPORTED for direct unit-testing of the shape assumption.
 */
export function parseOxlint(stdout: any): any;
/**
 * THE EXTENSION POINT. Each scanner is one self-contained entry:
 *   id      stable scanner id (labels its findings block)
 *   detect  (dir) => boolean — is this the repo's stack? (a marker file check)
 *   langs   file extensions this scanner handles
 *   bin     () => resolved binary path/name (env-overridable)
 *   args    (files) => string[] — argv (files are RELATIVE to the scanned dir)
 *   parse   (stdout, stderr, code) => [{ file, line, severity, rule, message }]
 * Adding a tool = ONE more entry here. NOTHING scanner-specific lives elsewhere.
 */
export const SCANNERS: {
    id: string;
    detect: (dir: any) => any;
    langs: string[];
    bin: () => any;
    args: (files: any, ctx?: {}) => any[];
    parse: typeof parseOxlint;
}[];
export namespace codeScanSkill {
    let id: string;
    let serverName: string;
    let meta: any;
    let allowedTools: string[];
    let description: string;
    let promptFragment: string;
    function resolve(): {
        command: any;
        args: any[];
        env: {};
        description: string;
        type?: undefined;
        alwaysLoad?: undefined;
    } | {
        type: string;
        command: string;
        args: any[];
        env: {};
        description: string;
        alwaysLoad: boolean;
    };
    function handleToolCall(name: any, args: any): Promise<string>;
    let tools: {
        name: string;
        description: string;
        input_schema: {
            type: string;
            properties: {
                dir: {
                    type: string;
                    description: string;
                };
                files: {
                    type: string;
                    items: {
                        type: string;
                    };
                    description: string;
                };
            };
        };
    }[];
}
