interface AgentToolResult {
    content: Array<{
        type: string;
        text: string;
    }>;
    isError?: boolean;
}
interface AgentToolDefinition {
    name: string;
    description: string;
    parameters: Record<string, unknown>;
    execute(_id: string, params: Record<string, unknown>): Promise<AgentToolResult>;
}
interface OpenClawPluginApi {
    id: string;
    name: string;
    config: Record<string, unknown>;
    pluginConfig?: Record<string, unknown>;
    on(hookName: string, handler: (...args: any[]) => any, opts?: {
        priority?: number;
    }): void;
    registerCommand(command: CommandDefinition): void;
    registerTool(tool: AgentToolDefinition, opts?: {
        optional?: boolean;
    }): void;
}
interface CommandDefinition {
    name: string;
    description: string;
    handler(ctx: CommandContext): CommandResult | Promise<CommandResult>;
}
interface CommandContext {
    senderId?: string;
    channel: string;
    args?: string;
    commandBody: string;
    config: Record<string, unknown>;
}
interface CommandResult {
    text: string;
}
export default function register(api: OpenClawPluginApi): void;
export {};
