import type { AgentTool } from "@pie-lab/agent-core";
import { type Static, Type } from "typebox";
import { type DapClientLike } from "../../utils/dap-client.ts";
import type { ToolDefinition } from "../extensions/types.ts";
declare const dapSchema: Type.TObject<{
    script: Type.TOptional<Type.TString>;
    action: Type.TUnion<[Type.TLiteral<"run">, Type.TLiteral<"debug">, Type.TLiteral<"set_breakpoints">, Type.TLiteral<"continue">, Type.TLiteral<"stack_trace">, Type.TLiteral<"scopes">, Type.TLiteral<"variables">, Type.TLiteral<"evaluate">, Type.TLiteral<"disconnect">, Type.TLiteral<"status">]>;
    args: Type.TOptional<Type.TArray<Type.TString>>;
    sessionId: Type.TOptional<Type.TString>;
    adapterCommand: Type.TOptional<Type.TString>;
    adapterArgs: Type.TOptional<Type.TArray<Type.TString>>;
    breakpoints: Type.TOptional<Type.TArray<Type.TObject<{
        file: Type.TOptional<Type.TString>;
        line: Type.TNumber;
    }>>>;
    threadId: Type.TOptional<Type.TNumber>;
    frameId: Type.TOptional<Type.TNumber>;
    variablesReference: Type.TOptional<Type.TNumber>;
    expression: Type.TOptional<Type.TString>;
}>;
export type DapToolInput = Static<typeof dapSchema>;
export interface DapToolOptions {
    clientFactory?: (cwd: string) => DapClientLike;
}
export declare function createDapToolDefinition(cwd: string, options?: DapToolOptions): ToolDefinition<typeof dapSchema, undefined>;
export declare function createDapTool(cwd: string): AgentTool<typeof dapSchema>;
export {};
//# sourceMappingURL=dap.d.ts.map