import { z } from "zod";
import type { Workspace, WorkspaceBoundaryRule, AffectedResult } from "../types.js";
export declare const listWorkspacesSchema: {
    repo: z.ZodOptional<z.ZodString>;
};
export interface ListWorkspacesResult {
    workspaces: Workspace[];
    monorepo_tool: string | null;
}
export declare function listWorkspacesHandler(args: {
    repo?: string;
}): Promise<ListWorkspacesResult>;
export declare const workspaceGraphSchema: {
    repo: z.ZodOptional<z.ZodString>;
    format: z.ZodOptional<z.ZodEnum<{
        json: "json";
        dot: "dot";
        mermaid: "mermaid";
    }>>;
};
export interface WorkspaceGraphNode {
    id: string;
    name: string | null;
}
export interface WorkspaceGraphEdge {
    from: string;
    to: string;
    kind: "workspace_dep";
}
export interface WorkspaceGraphResult {
    nodes: WorkspaceGraphNode[];
    edges: WorkspaceGraphEdge[];
    /** Format-specific serialized output (when format !== "json"). */
    mermaid?: string;
    dot?: string;
    truncated?: boolean;
}
export declare function workspaceGraphHandler(args: {
    repo?: string;
    format?: "json" | "mermaid" | "dot";
}): Promise<WorkspaceGraphResult>;
export declare const affectedWorkspacesSchema: {
    repo: z.ZodOptional<z.ZodString>;
    since: z.ZodString;
    include_transitive: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
};
export declare function affectedWorkspacesHandler(args: {
    repo?: string;
    since: string;
    include_transitive?: boolean;
}): Promise<AffectedResult>;
export declare const workspaceBoundariesSchema: {
    repo: z.ZodOptional<z.ZodString>;
    rules: z.ZodArray<z.ZodObject<{
        from_workspace: z.ZodString;
        cannot_import_workspaces: z.ZodArray<z.ZodString>;
    }, z.core.$strip>>;
};
export interface WorkspaceBoundaryViolation {
    from_file: string;
    from_workspace: string;
    to_workspace: string;
    import_target: string;
    rule_matched: WorkspaceBoundaryRule;
}
export interface WorkspaceBoundariesResult {
    violations: WorkspaceBoundaryViolation[];
    warnings: string[];
}
export declare function workspaceBoundariesHandler(args: {
    repo?: string;
    rules: WorkspaceBoundaryRule[];
}): Promise<WorkspaceBoundariesResult>;
//# sourceMappingURL=workspace-tools.d.ts.map