import { z } from 'zod';

/**
 * @module studio/plugin
 *
 * Studio Plugin Protocol
 *
 * Defines the specification for Studio plugins — a VS Code-like extension model
 * that allows each metadata type to contribute custom viewers, designers,
 * sidebar groups, actions, and commands.
 *
 * ## Architecture
 *
 * Like VS Code extensions, Studio plugins have two layers:
 * 1. **Manifest (Declarative)** — JSON-serializable contribution points
 * 2. **Activation (Imperative)** — Runtime registration of React components & handlers
 *
 * ```
 * ┌─────────────────────────────────────────────────────────┐
 * │                    Studio Host                          │
 * │  ┌───────────────────────────────────────────────────┐  │
 * │  │              Plugin Registry                      │  │
 * │  │  ┌──────────┐ ┌──────────┐ ┌──────────┐         │  │
 * │  │  │ Object   │ │  Flow    │ │  Agent   │  ...     │  │
 * │  │  │ Plugin   │ │  Plugin  │ │  Plugin  │         │  │
 * │  │  └──────────┘ └──────────┘ └──────────┘         │  │
 * │  └───────────────────────────────────────────────────┘  │
 * │                                                         │
 * │  ┌─── Sidebar ───┐  ┌──── Main Panel ────────────────┐ │
 * │  │ [plugin icons] │  │  PluginHost renders viewer     │ │
 * │  │ [plugin groups]│  │  from highest-priority plugin  │ │
 * │  └────────────────┘  └────────────────────────────────┘ │
 * └─────────────────────────────────────────────────────────┘
 * ```
 *
 * @example
 * ```typescript
 * import { StudioPluginManifestSchema } from '@objectstack/spec/studio';
 *
 * const manifest = StudioPluginManifestSchema.parse({
 *   id: 'objectstack.object-designer',
 *   name: 'Object Designer',
 *   version: '1.0.0',
 *   contributes: {
 *     metadataViewers: [{
 *       id: 'object-explorer',
 *       metadataTypes: ['object', 'objects'],
 *       label: 'Object Explorer',
 *       priority: 100,
 *       modes: ['preview', 'design', 'data'],
 *     }],
 *   },
 * });
 * ```
 */

/** Supported view modes for metadata viewers */
declare const ViewModeSchema: z.ZodEnum<{
    code: "code";
    data: "data";
    preview: "preview";
    design: "design";
}>;
type ViewMode = z.infer<typeof ViewModeSchema>;
/**
 * Declares a metadata viewer/designer component.
 * The runtime component is registered imperatively during plugin activation.
 */
declare const MetadataViewerContributionSchema: z.ZodObject<{
    id: z.ZodString;
    metadataTypes: z.ZodArray<z.ZodString>;
    label: z.ZodString;
    priority: z.ZodDefault<z.ZodNumber>;
    modes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        code: "code";
        data: "data";
        preview: "preview";
        design: "design";
    }>>>;
}, z.core.$strip>;
type MetadataViewerContribution = z.infer<typeof MetadataViewerContributionSchema>;
/**
 * Declares a sidebar group that organizes metadata types.
 * Plugins can add new groups or extend existing ones.
 */
declare const SidebarGroupContributionSchema: z.ZodObject<{
    key: z.ZodString;
    label: z.ZodString;
    icon: z.ZodOptional<z.ZodString>;
    metadataTypes: z.ZodArray<z.ZodString>;
    order: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
type SidebarGroupContribution = z.infer<typeof SidebarGroupContributionSchema>;
/** Where an action can appear in the UI */
declare const ActionLocationSchema: z.ZodEnum<{
    toolbar: "toolbar";
    contextMenu: "contextMenu";
    commandPalette: "commandPalette";
}>;
/**
 * Declares an action that can be triggered on metadata items.
 * The handler is registered imperatively during activation.
 */
declare const ActionContributionSchema: z.ZodObject<{
    id: z.ZodString;
    label: z.ZodString;
    icon: z.ZodOptional<z.ZodString>;
    location: z.ZodEnum<{
        toolbar: "toolbar";
        contextMenu: "contextMenu";
        commandPalette: "commandPalette";
    }>;
    metadataTypes: z.ZodDefault<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
type ActionContribution = z.infer<typeof ActionContributionSchema>;
/**
 * Declares an icon and label for a metadata type.
 * Used by the sidebar and breadcrumbs.
 */
declare const MetadataIconContributionSchema: z.ZodObject<{
    metadataType: z.ZodString;
    label: z.ZodString;
    icon: z.ZodString;
}, z.core.$strip>;
type MetadataIconContribution = z.infer<typeof MetadataIconContributionSchema>;
/** Where a panel can be placed */
declare const PanelLocationSchema: z.ZodEnum<{
    right: "right";
    modal: "modal";
    bottom: "bottom";
}>;
/**
 * Declares an auxiliary panel (like VS Code's Terminal, Problems, Output panels).
 */
declare const PanelContributionSchema: z.ZodObject<{
    id: z.ZodString;
    label: z.ZodString;
    icon: z.ZodOptional<z.ZodString>;
    location: z.ZodDefault<z.ZodEnum<{
        right: "right";
        modal: "modal";
        bottom: "bottom";
    }>>;
}, z.core.$strip>;
type PanelContribution = z.infer<typeof PanelContributionSchema>;
/**
 * Declares a command that can be invoked from the command palette
 * or programmatically by other plugins.
 */
declare const CommandContributionSchema: z.ZodObject<{
    id: z.ZodString;
    label: z.ZodString;
    shortcut: z.ZodOptional<z.ZodString>;
    icon: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
type CommandContribution = z.infer<typeof CommandContributionSchema>;
/**
 * All contribution points a Studio plugin can declare.
 * Analogous to VS Code's `contributes` section in `package.json`.
 */
declare const StudioPluginContributionsSchema: z.ZodObject<{
    metadataViewers: z.ZodDefault<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        metadataTypes: z.ZodArray<z.ZodString>;
        label: z.ZodString;
        priority: z.ZodDefault<z.ZodNumber>;
        modes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
            code: "code";
            data: "data";
            preview: "preview";
            design: "design";
        }>>>;
    }, z.core.$strip>>>;
    sidebarGroups: z.ZodDefault<z.ZodArray<z.ZodObject<{
        key: z.ZodString;
        label: z.ZodString;
        icon: z.ZodOptional<z.ZodString>;
        metadataTypes: z.ZodArray<z.ZodString>;
        order: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>>;
    actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        label: z.ZodString;
        icon: z.ZodOptional<z.ZodString>;
        location: z.ZodEnum<{
            toolbar: "toolbar";
            contextMenu: "contextMenu";
            commandPalette: "commandPalette";
        }>;
        metadataTypes: z.ZodDefault<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>>;
    metadataIcons: z.ZodDefault<z.ZodArray<z.ZodObject<{
        metadataType: z.ZodString;
        label: z.ZodString;
        icon: z.ZodString;
    }, z.core.$strip>>>;
    panels: z.ZodDefault<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        label: z.ZodString;
        icon: z.ZodOptional<z.ZodString>;
        location: z.ZodDefault<z.ZodEnum<{
            right: "right";
            modal: "modal";
            bottom: "bottom";
        }>>;
    }, z.core.$strip>>>;
    commands: z.ZodDefault<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        label: z.ZodString;
        shortcut: z.ZodOptional<z.ZodString>;
        icon: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
type StudioPluginContributions = z.infer<typeof StudioPluginContributionsSchema>;
/**
 * Events that trigger plugin activation.
 * Similar to VS Code's `activationEvents`.
 *
 * Patterns:
 * - `*` — Activate immediately (eager)
 * - `onMetadataType:object` — Activate when metadata type "object" is loaded
 * - `onCommand:myPlugin.doSomething` — Activate when command is invoked
 * - `onView:myPlugin.myPanel` — Activate when panel is opened
 */
declare const ActivationEventSchema: z.ZodString;
/**
 * The declarative manifest for a Studio plugin.
 *
 * This is the "package.json" equivalent for Studio extensions.
 * All contribution points are declared here; runtime components
 * are registered imperatively during the `activate()` call.
 */
declare const StudioPluginManifestSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    version: z.ZodDefault<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    author: z.ZodOptional<z.ZodString>;
    contributes: z.ZodDefault<z.ZodObject<{
        metadataViewers: z.ZodDefault<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            metadataTypes: z.ZodArray<z.ZodString>;
            label: z.ZodString;
            priority: z.ZodDefault<z.ZodNumber>;
            modes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
                code: "code";
                data: "data";
                preview: "preview";
                design: "design";
            }>>>;
        }, z.core.$strip>>>;
        sidebarGroups: z.ZodDefault<z.ZodArray<z.ZodObject<{
            key: z.ZodString;
            label: z.ZodString;
            icon: z.ZodOptional<z.ZodString>;
            metadataTypes: z.ZodArray<z.ZodString>;
            order: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>>;
        actions: z.ZodDefault<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            label: z.ZodString;
            icon: z.ZodOptional<z.ZodString>;
            location: z.ZodEnum<{
                toolbar: "toolbar";
                contextMenu: "contextMenu";
                commandPalette: "commandPalette";
            }>;
            metadataTypes: z.ZodDefault<z.ZodArray<z.ZodString>>;
        }, z.core.$strip>>>;
        metadataIcons: z.ZodDefault<z.ZodArray<z.ZodObject<{
            metadataType: z.ZodString;
            label: z.ZodString;
            icon: z.ZodString;
        }, z.core.$strip>>>;
        panels: z.ZodDefault<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            label: z.ZodString;
            icon: z.ZodOptional<z.ZodString>;
            location: z.ZodDefault<z.ZodEnum<{
                right: "right";
                modal: "modal";
                bottom: "bottom";
            }>>;
        }, z.core.$strip>>>;
        commands: z.ZodDefault<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            label: z.ZodString;
            shortcut: z.ZodOptional<z.ZodString>;
            icon: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>;
    }, z.core.$strip>>;
    activationEvents: z.ZodDefault<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
type StudioPluginManifest = z.infer<typeof StudioPluginManifestSchema>;
/**
 * Type-safe helper for defining a Studio plugin manifest.
 *
 * @example
 * ```typescript
 * const manifest = defineStudioPlugin({
 *   id: 'objectstack.flow-designer',
 *   name: 'Flow Designer',
 *   contributes: {
 *     metadataViewers: [{
 *       id: 'flow-canvas',
 *       metadataTypes: ['flows'],
 *       label: 'Flow Canvas',
 *       priority: 100,
 *       modes: ['design', 'code'],
 *     }],
 *   },
 * });
 * ```
 */
declare function defineStudioPlugin(input: z.input<typeof StudioPluginManifestSchema>): StudioPluginManifest;

/**
 * @module studio/object-designer
 *
 * Object Designer Protocol — Visual Field Editor, Relationship Mapper & ER Diagram
 *
 * Defines the specification for the Object Designer experience within ObjectStack Studio,
 * including:
 * - **Field Editor**: Visual field creation/editing with type-aware property panels
 * - **Relationship Mapper**: Visual lookup/master-detail relationship configuration
 * - **ER Diagram**: Entity-Relationship diagram rendering and interaction
 * - **Object Manager**: Unified object list with search, filtering, and bulk operations
 *
 * ## Architecture
 *
 * The Object Designer is composed of four interconnected panels:
 *
 * ```
 * ┌─────────────────────────────────────────────────────────────────┐
 * │                     Object Manager (list / search)             │
 * ├──────────────┬──────────────────────────┬──────────────────────┤
 * │  Object List │  Field Editor            │  Property Panel      │
 * │  (sidebar)   │  (table + inline edit)   │  (type-specific)     │
 * │              │                          │                      │
 * │  ─ search    │  ─ drag-to-reorder       │  ─ constraints       │
 * │  ─ filter    │  ─ inline type picker    │  ─ validation        │
 * │  ─ group     │  ─ batch add/remove      │  ─ security          │
 * │  ─ create    │  ─ field groups           │  ─ relationships     │
 * ├──────────────┴──────────────────────────┴──────────────────────┤
 * │                     ER Diagram (toggle panel)                  │
 * │  ─ auto-layout (force / hierarchy / grid)                     │
 * │  ─ interactive: click node → navigate to object               │
 * │  ─ hover: highlight connected relationships                   │
 * │  ─ zoom/pan/minimap                                           │
 * └─────────────────────────────────────────────────────────────────┘
 * ```
 *
 * @example
 * ```typescript
 * import {
 *   ObjectDesignerConfigSchema,
 *   ERDiagramConfigSchema,
 * } from '@objectstack/spec/studio';
 *
 * const config = ObjectDesignerConfigSchema.parse({
 *   defaultView: 'field-editor',
 *   fieldEditor: {
 *     inlineEditing: true,
 *     dragReorder: true,
 *     showFieldGroups: true,
 *   },
 *   erDiagram: {
 *     enabled: true,
 *     layout: 'force',
 *     showFieldDetails: true,
 *   },
 * });
 * ```
 */

/**
 * Field property panel section — groups related field properties
 * in the right-side property inspector.
 */
declare const FieldPropertySectionSchema: z.ZodObject<{
    key: z.ZodString;
    label: z.ZodString;
    icon: z.ZodOptional<z.ZodString>;
    defaultExpanded: z.ZodDefault<z.ZodBoolean>;
    order: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
type FieldPropertySection = z.infer<typeof FieldPropertySectionSchema>;
/**
 * Field grouping configuration — organizes fields into collapsible groups
 * within the field editor table (e.g., "Contact Info", "Billing", "System").
 */
declare const FieldGroupSchema: z.ZodObject<{
    key: z.ZodString;
    label: z.ZodString;
    icon: z.ZodOptional<z.ZodString>;
    defaultExpanded: z.ZodDefault<z.ZodBoolean>;
    order: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
type FieldGroup = z.infer<typeof FieldGroupSchema>;
/**
 * Field Editor configuration — controls the visual field editing experience.
 */
declare const FieldEditorConfigSchema: z.ZodObject<{
    inlineEditing: z.ZodDefault<z.ZodBoolean>;
    dragReorder: z.ZodDefault<z.ZodBoolean>;
    showFieldGroups: z.ZodDefault<z.ZodBoolean>;
    showPropertyPanel: z.ZodDefault<z.ZodBoolean>;
    propertySections: z.ZodDefault<z.ZodArray<z.ZodObject<{
        key: z.ZodString;
        label: z.ZodString;
        icon: z.ZodOptional<z.ZodString>;
        defaultExpanded: z.ZodDefault<z.ZodBoolean>;
        order: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>>;
    fieldGroups: z.ZodDefault<z.ZodArray<z.ZodObject<{
        key: z.ZodString;
        label: z.ZodString;
        icon: z.ZodOptional<z.ZodString>;
        defaultExpanded: z.ZodDefault<z.ZodBoolean>;
        order: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>>;
    paginationThreshold: z.ZodDefault<z.ZodNumber>;
    batchOperations: z.ZodDefault<z.ZodBoolean>;
    showUsageStats: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
type FieldEditorConfig = z.infer<typeof FieldEditorConfigSchema>;
/**
 * Relationship display configuration — controls how relationships
 * are visualized in the mapper and ER diagram.
 */
declare const RelationshipDisplaySchema: z.ZodObject<{
    type: z.ZodEnum<{
        lookup: "lookup";
        master_detail: "master_detail";
        tree: "tree";
    }>;
    lineStyle: z.ZodDefault<z.ZodEnum<{
        solid: "solid";
        dashed: "dashed";
        dotted: "dotted";
    }>>;
    color: z.ZodDefault<z.ZodString>;
    highlightColor: z.ZodDefault<z.ZodString>;
    cardinalityLabel: z.ZodDefault<z.ZodString>;
}, z.core.$strip>;
type RelationshipDisplay = z.infer<typeof RelationshipDisplaySchema>;
/**
 * Relationship Mapper configuration — controls the relationship
 * editing and visualization experience.
 */
declare const RelationshipMapperConfigSchema: z.ZodObject<{
    visualCreation: z.ZodDefault<z.ZodBoolean>;
    showReverseRelationships: z.ZodDefault<z.ZodBoolean>;
    showCascadeWarnings: z.ZodDefault<z.ZodBoolean>;
    displayConfig: z.ZodDefault<z.ZodArray<z.ZodObject<{
        type: z.ZodEnum<{
            lookup: "lookup";
            master_detail: "master_detail";
            tree: "tree";
        }>;
        lineStyle: z.ZodDefault<z.ZodEnum<{
            solid: "solid";
            dashed: "dashed";
            dotted: "dotted";
        }>>;
        color: z.ZodDefault<z.ZodString>;
        highlightColor: z.ZodDefault<z.ZodString>;
        cardinalityLabel: z.ZodDefault<z.ZodString>;
    }, z.core.$strip>>>;
}, z.core.$strip>;
type RelationshipMapperConfig = z.infer<typeof RelationshipMapperConfigSchema>;
/** Layout algorithm for ER diagram */
declare const ERLayoutAlgorithmSchema: z.ZodEnum<{
    grid: "grid";
    force: "force";
    hierarchy: "hierarchy";
    circular: "circular";
}>;
type ERLayoutAlgorithm = z.infer<typeof ERLayoutAlgorithmSchema>;
/**
 * Node display options — controls what information is shown
 * on each entity node in the ER diagram.
 */
declare const ERNodeDisplaySchema: z.ZodObject<{
    showFields: z.ZodDefault<z.ZodBoolean>;
    maxFieldsVisible: z.ZodDefault<z.ZodNumber>;
    showFieldTypes: z.ZodDefault<z.ZodBoolean>;
    showRequiredIndicator: z.ZodDefault<z.ZodBoolean>;
    showRecordCount: z.ZodDefault<z.ZodBoolean>;
    showIcon: z.ZodDefault<z.ZodBoolean>;
    showDescription: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
type ERNodeDisplay = z.infer<typeof ERNodeDisplaySchema>;
/**
 * ER Diagram configuration — controls the entity-relationship
 * diagram rendering, interaction, and layout.
 */
declare const ERDiagramConfigSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    layout: z.ZodDefault<z.ZodEnum<{
        grid: "grid";
        force: "force";
        hierarchy: "hierarchy";
        circular: "circular";
    }>>;
    nodeDisplay: z.ZodDefault<z.ZodObject<{
        showFields: z.ZodDefault<z.ZodBoolean>;
        maxFieldsVisible: z.ZodDefault<z.ZodNumber>;
        showFieldTypes: z.ZodDefault<z.ZodBoolean>;
        showRequiredIndicator: z.ZodDefault<z.ZodBoolean>;
        showRecordCount: z.ZodDefault<z.ZodBoolean>;
        showIcon: z.ZodDefault<z.ZodBoolean>;
        showDescription: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    showMinimap: z.ZodDefault<z.ZodBoolean>;
    zoomControls: z.ZodDefault<z.ZodBoolean>;
    minZoom: z.ZodDefault<z.ZodNumber>;
    maxZoom: z.ZodDefault<z.ZodNumber>;
    showEdgeLabels: z.ZodDefault<z.ZodBoolean>;
    highlightOnHover: z.ZodDefault<z.ZodBoolean>;
    clickToNavigate: z.ZodDefault<z.ZodBoolean>;
    dragToConnect: z.ZodDefault<z.ZodBoolean>;
    hideOrphans: z.ZodDefault<z.ZodBoolean>;
    autoFit: z.ZodDefault<z.ZodBoolean>;
    exportFormats: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        json: "json";
        png: "png";
        svg: "svg";
    }>>>;
}, z.core.$strip>;
type ERDiagramConfig = z.infer<typeof ERDiagramConfigSchema>;
/** Object list display mode */
declare const ObjectListDisplayModeSchema: z.ZodEnum<{
    table: "table";
    tree: "tree";
    cards: "cards";
}>;
type ObjectListDisplayMode = z.infer<typeof ObjectListDisplayModeSchema>;
/** Object list sort field */
declare const ObjectSortFieldSchema: z.ZodEnum<{
    name: "name";
    label: "label";
    updatedAt: "updatedAt";
    fieldCount: "fieldCount";
}>;
type ObjectSortField = z.infer<typeof ObjectSortFieldSchema>;
/** Object filter criteria */
declare const ObjectFilterSchema: z.ZodObject<{
    package: z.ZodOptional<z.ZodString>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    includeSystem: z.ZodDefault<z.ZodBoolean>;
    includeAbstract: z.ZodDefault<z.ZodBoolean>;
    hasFieldType: z.ZodOptional<z.ZodString>;
    hasRelationships: z.ZodOptional<z.ZodBoolean>;
    searchQuery: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
type ObjectFilter = z.infer<typeof ObjectFilterSchema>;
/**
 * Object Manager configuration — controls the unified object list,
 * search, and management experience.
 */
declare const ObjectManagerConfigSchema: z.ZodObject<{
    defaultDisplayMode: z.ZodDefault<z.ZodEnum<{
        table: "table";
        tree: "tree";
        cards: "cards";
    }>>;
    defaultSortField: z.ZodDefault<z.ZodEnum<{
        name: "name";
        label: "label";
        updatedAt: "updatedAt";
        fieldCount: "fieldCount";
    }>>;
    defaultSortDirection: z.ZodDefault<z.ZodEnum<{
        asc: "asc";
        desc: "desc";
    }>>;
    defaultFilter: z.ZodDefault<z.ZodObject<{
        package: z.ZodOptional<z.ZodString>;
        tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
        includeSystem: z.ZodDefault<z.ZodBoolean>;
        includeAbstract: z.ZodDefault<z.ZodBoolean>;
        hasFieldType: z.ZodOptional<z.ZodString>;
        hasRelationships: z.ZodOptional<z.ZodBoolean>;
        searchQuery: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    showFieldCount: z.ZodDefault<z.ZodBoolean>;
    showRelationshipCount: z.ZodDefault<z.ZodBoolean>;
    showQuickPreview: z.ZodDefault<z.ZodBoolean>;
    enableComparison: z.ZodDefault<z.ZodBoolean>;
    showERDiagramToggle: z.ZodDefault<z.ZodBoolean>;
    showCreateAction: z.ZodDefault<z.ZodBoolean>;
    showStatsSummary: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
type ObjectManagerConfig = z.infer<typeof ObjectManagerConfigSchema>;
/**
 * Preview tab configuration — defines the tabs available
 * when viewing a single object.
 */
declare const ObjectPreviewTabSchema: z.ZodObject<{
    key: z.ZodString;
    label: z.ZodString;
    icon: z.ZodOptional<z.ZodString>;
    enabled: z.ZodDefault<z.ZodBoolean>;
    order: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
type ObjectPreviewTab = z.infer<typeof ObjectPreviewTabSchema>;
/**
 * Object Preview configuration — defines the tabs and layout
 * when viewing/editing a single object's metadata.
 */
declare const ObjectPreviewConfigSchema: z.ZodObject<{
    tabs: z.ZodDefault<z.ZodArray<z.ZodObject<{
        key: z.ZodString;
        label: z.ZodString;
        icon: z.ZodOptional<z.ZodString>;
        enabled: z.ZodDefault<z.ZodBoolean>;
        order: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>>;
    defaultTab: z.ZodDefault<z.ZodString>;
    showHeader: z.ZodDefault<z.ZodBoolean>;
    showBreadcrumbs: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
type ObjectPreviewConfig = z.infer<typeof ObjectPreviewConfigSchema>;
/** Default view when entering the Object Designer */
declare const ObjectDesignerDefaultViewSchema: z.ZodEnum<{
    "field-editor": "field-editor";
    "relationship-mapper": "relationship-mapper";
    "er-diagram": "er-diagram";
    "object-manager": "object-manager";
}>;
type ObjectDesignerDefaultView = z.infer<typeof ObjectDesignerDefaultViewSchema>;
/**
 * Object Designer configuration — top-level config that composes
 * all sub-configurations for the visual object design experience.
 *
 * @example
 * ```typescript
 * const config = ObjectDesignerConfigSchema.parse({
 *   defaultView: 'field-editor',
 *   fieldEditor: {
 *     inlineEditing: true,
 *     dragReorder: true,
 *     showFieldGroups: true,
 *   },
 *   erDiagram: {
 *     enabled: true,
 *     layout: 'force',
 *   },
 *   objectManager: {
 *     defaultDisplayMode: 'table',
 *     showERDiagramToggle: true,
 *   },
 * });
 * ```
 */
declare const ObjectDesignerConfigSchema: z.ZodObject<{
    defaultView: z.ZodDefault<z.ZodEnum<{
        "field-editor": "field-editor";
        "relationship-mapper": "relationship-mapper";
        "er-diagram": "er-diagram";
        "object-manager": "object-manager";
    }>>;
    fieldEditor: z.ZodDefault<z.ZodObject<{
        inlineEditing: z.ZodDefault<z.ZodBoolean>;
        dragReorder: z.ZodDefault<z.ZodBoolean>;
        showFieldGroups: z.ZodDefault<z.ZodBoolean>;
        showPropertyPanel: z.ZodDefault<z.ZodBoolean>;
        propertySections: z.ZodDefault<z.ZodArray<z.ZodObject<{
            key: z.ZodString;
            label: z.ZodString;
            icon: z.ZodOptional<z.ZodString>;
            defaultExpanded: z.ZodDefault<z.ZodBoolean>;
            order: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>>;
        fieldGroups: z.ZodDefault<z.ZodArray<z.ZodObject<{
            key: z.ZodString;
            label: z.ZodString;
            icon: z.ZodOptional<z.ZodString>;
            defaultExpanded: z.ZodDefault<z.ZodBoolean>;
            order: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>>;
        paginationThreshold: z.ZodDefault<z.ZodNumber>;
        batchOperations: z.ZodDefault<z.ZodBoolean>;
        showUsageStats: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    relationshipMapper: z.ZodDefault<z.ZodObject<{
        visualCreation: z.ZodDefault<z.ZodBoolean>;
        showReverseRelationships: z.ZodDefault<z.ZodBoolean>;
        showCascadeWarnings: z.ZodDefault<z.ZodBoolean>;
        displayConfig: z.ZodDefault<z.ZodArray<z.ZodObject<{
            type: z.ZodEnum<{
                lookup: "lookup";
                master_detail: "master_detail";
                tree: "tree";
            }>;
            lineStyle: z.ZodDefault<z.ZodEnum<{
                solid: "solid";
                dashed: "dashed";
                dotted: "dotted";
            }>>;
            color: z.ZodDefault<z.ZodString>;
            highlightColor: z.ZodDefault<z.ZodString>;
            cardinalityLabel: z.ZodDefault<z.ZodString>;
        }, z.core.$strip>>>;
    }, z.core.$strip>>;
    erDiagram: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        layout: z.ZodDefault<z.ZodEnum<{
            grid: "grid";
            force: "force";
            hierarchy: "hierarchy";
            circular: "circular";
        }>>;
        nodeDisplay: z.ZodDefault<z.ZodObject<{
            showFields: z.ZodDefault<z.ZodBoolean>;
            maxFieldsVisible: z.ZodDefault<z.ZodNumber>;
            showFieldTypes: z.ZodDefault<z.ZodBoolean>;
            showRequiredIndicator: z.ZodDefault<z.ZodBoolean>;
            showRecordCount: z.ZodDefault<z.ZodBoolean>;
            showIcon: z.ZodDefault<z.ZodBoolean>;
            showDescription: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>>;
        showMinimap: z.ZodDefault<z.ZodBoolean>;
        zoomControls: z.ZodDefault<z.ZodBoolean>;
        minZoom: z.ZodDefault<z.ZodNumber>;
        maxZoom: z.ZodDefault<z.ZodNumber>;
        showEdgeLabels: z.ZodDefault<z.ZodBoolean>;
        highlightOnHover: z.ZodDefault<z.ZodBoolean>;
        clickToNavigate: z.ZodDefault<z.ZodBoolean>;
        dragToConnect: z.ZodDefault<z.ZodBoolean>;
        hideOrphans: z.ZodDefault<z.ZodBoolean>;
        autoFit: z.ZodDefault<z.ZodBoolean>;
        exportFormats: z.ZodDefault<z.ZodArray<z.ZodEnum<{
            json: "json";
            png: "png";
            svg: "svg";
        }>>>;
    }, z.core.$strip>>;
    objectManager: z.ZodDefault<z.ZodObject<{
        defaultDisplayMode: z.ZodDefault<z.ZodEnum<{
            table: "table";
            tree: "tree";
            cards: "cards";
        }>>;
        defaultSortField: z.ZodDefault<z.ZodEnum<{
            name: "name";
            label: "label";
            updatedAt: "updatedAt";
            fieldCount: "fieldCount";
        }>>;
        defaultSortDirection: z.ZodDefault<z.ZodEnum<{
            asc: "asc";
            desc: "desc";
        }>>;
        defaultFilter: z.ZodDefault<z.ZodObject<{
            package: z.ZodOptional<z.ZodString>;
            tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
            includeSystem: z.ZodDefault<z.ZodBoolean>;
            includeAbstract: z.ZodDefault<z.ZodBoolean>;
            hasFieldType: z.ZodOptional<z.ZodString>;
            hasRelationships: z.ZodOptional<z.ZodBoolean>;
            searchQuery: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        showFieldCount: z.ZodDefault<z.ZodBoolean>;
        showRelationshipCount: z.ZodDefault<z.ZodBoolean>;
        showQuickPreview: z.ZodDefault<z.ZodBoolean>;
        enableComparison: z.ZodDefault<z.ZodBoolean>;
        showERDiagramToggle: z.ZodDefault<z.ZodBoolean>;
        showCreateAction: z.ZodDefault<z.ZodBoolean>;
        showStatsSummary: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    objectPreview: z.ZodDefault<z.ZodObject<{
        tabs: z.ZodDefault<z.ZodArray<z.ZodObject<{
            key: z.ZodString;
            label: z.ZodString;
            icon: z.ZodOptional<z.ZodString>;
            enabled: z.ZodDefault<z.ZodBoolean>;
            order: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>>;
        defaultTab: z.ZodDefault<z.ZodString>;
        showHeader: z.ZodDefault<z.ZodBoolean>;
        showBreadcrumbs: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
}, z.core.$strip>;
type ObjectDesignerConfig = z.infer<typeof ObjectDesignerConfigSchema>;
/**
 * Type-safe helper for defining Object Designer configuration.
 *
 * @example
 * ```typescript
 * const config = defineObjectDesignerConfig({
 *   defaultView: 'er-diagram',
 *   erDiagram: {
 *     layout: 'hierarchy',
 *     showMinimap: true,
 *   },
 *   objectManager: {
 *     defaultDisplayMode: 'cards',
 *   },
 * });
 * ```
 */
declare function defineObjectDesignerConfig(input: z.input<typeof ObjectDesignerConfigSchema>): ObjectDesignerConfig;

/**
 * @module studio/page-builder
 *
 * Studio Page Builder Protocol
 *
 * Defines the specification for the drag-and-drop Page Builder UI.
 * The builder allows visual composition of blank pages by placing
 * elements on a grid canvas with snapping, alignment, and layer ordering.
 */

/**
 * Canvas Snap Settings Schema
 * Controls grid snapping behavior during element placement.
 */
declare const CanvasSnapSettingsSchema: z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    gridSize: z.ZodDefault<z.ZodNumber>;
    showGrid: z.ZodDefault<z.ZodBoolean>;
    showGuides: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
/**
 * Canvas Zoom Settings Schema
 * Controls zoom behavior for the builder canvas.
 */
declare const CanvasZoomSettingsSchema: z.ZodObject<{
    min: z.ZodDefault<z.ZodNumber>;
    max: z.ZodDefault<z.ZodNumber>;
    default: z.ZodDefault<z.ZodNumber>;
    step: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
/**
 * Element Palette Item Schema
 * An element available in the builder palette for drag-and-drop placement.
 */
declare const ElementPaletteItemSchema: z.ZodObject<{
    type: z.ZodString;
    label: z.ZodString;
    icon: z.ZodOptional<z.ZodString>;
    category: z.ZodEnum<{
        data: "data";
        layout: "layout";
        content: "content";
        interactive: "interactive";
    }>;
    defaultWidth: z.ZodDefault<z.ZodNumber>;
    defaultHeight: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
/**
 * Page Builder Config Schema
 * Configuration for the Studio Page Builder.
 */
declare const PageBuilderConfigSchema: z.ZodObject<{
    snap: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        gridSize: z.ZodDefault<z.ZodNumber>;
        showGrid: z.ZodDefault<z.ZodBoolean>;
        showGuides: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    zoom: z.ZodOptional<z.ZodObject<{
        min: z.ZodDefault<z.ZodNumber>;
        max: z.ZodDefault<z.ZodNumber>;
        default: z.ZodDefault<z.ZodNumber>;
        step: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    palette: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodString;
        label: z.ZodString;
        icon: z.ZodOptional<z.ZodString>;
        category: z.ZodEnum<{
            data: "data";
            layout: "layout";
            content: "content";
            interactive: "interactive";
        }>;
        defaultWidth: z.ZodDefault<z.ZodNumber>;
        defaultHeight: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>>;
    showLayerPanel: z.ZodDefault<z.ZodBoolean>;
    showPropertyPanel: z.ZodDefault<z.ZodBoolean>;
    undoLimit: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
/** @deprecated Use PageBuilderConfigSchema instead */
declare const InterfaceBuilderConfigSchema: z.ZodObject<{
    snap: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        gridSize: z.ZodDefault<z.ZodNumber>;
        showGrid: z.ZodDefault<z.ZodBoolean>;
        showGuides: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    zoom: z.ZodOptional<z.ZodObject<{
        min: z.ZodDefault<z.ZodNumber>;
        max: z.ZodDefault<z.ZodNumber>;
        default: z.ZodDefault<z.ZodNumber>;
        step: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    palette: z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodString;
        label: z.ZodString;
        icon: z.ZodOptional<z.ZodString>;
        category: z.ZodEnum<{
            data: "data";
            layout: "layout";
            content: "content";
            interactive: "interactive";
        }>;
        defaultWidth: z.ZodDefault<z.ZodNumber>;
        defaultHeight: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>>;
    showLayerPanel: z.ZodDefault<z.ZodBoolean>;
    showPropertyPanel: z.ZodDefault<z.ZodBoolean>;
    undoLimit: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
type CanvasSnapSettings = z.infer<typeof CanvasSnapSettingsSchema>;
type CanvasZoomSettings = z.infer<typeof CanvasZoomSettingsSchema>;
type ElementPaletteItem = z.infer<typeof ElementPaletteItemSchema>;
/** @deprecated Use PageBuilderConfig instead */
type InterfaceBuilderConfig = z.infer<typeof PageBuilderConfigSchema>;
type PageBuilderConfig = z.infer<typeof PageBuilderConfigSchema>;

/**
 * @module studio/flow-builder
 *
 * Studio Flow Builder Protocol
 *
 * Defines the specification for the visual Flow Builder (automation canvas)
 * within ObjectStack Studio. Covers:
 * - **Node Shape Registry**: Shape and visual style per FlowNodeAction type
 * - **Canvas Node**: Position, size, and rendering hints for each node on canvas
 * - **Canvas Edge**: Visual properties for sequence flows (normal, default, fault)
 * - **Flow Builder Config**: Canvas settings, palette, minimap, and toolbar
 *
 * ## Architecture
 *
 * ```
 * ┌──────────────────────────────────────────────────────────────┐
 * │  Toolbar (run / save / undo / zoom / layout)                │
 * ├──────────┬───────────────────────────────────┬───────────────┤
 * │  Node    │       Canvas                      │  Property     │
 * │  Palette │  ┌─────┐    ┌──────────┐          │  Panel        │
 * │          │  │start│───▶│ decision │──▶ ...   │  (node-aware) │
 * │  ─ BPMN  │  └─────┘    └──────────┘          │               │
 * │  ─ CRUD  │       ┌──────────┐                │  ─ config     │
 * │  ─ Logic │       │parallel  │                │  ─ edges      │
 * │  ─ HTTP  │       │ gateway  │                │  ─ validation │
 * ├──────────┴───────────────────────────────────┴───────────────┤
 * │  Minimap / Zoom Controls                                     │
 * └──────────────────────────────────────────────────────────────┘
 * ```
 */

/**
 * Shape used to render a flow node on the canvas.
 * Matches BPMN conventions where applicable.
 */
declare const FlowNodeShapeSchema: z.ZodEnum<{
    rounded_rect: "rounded_rect";
    circle: "circle";
    diamond: "diamond";
    parallelogram: "parallelogram";
    hexagon: "hexagon";
    diamond_thick: "diamond_thick";
    attached_circle: "attached_circle";
    screen_rect: "screen_rect";
}>;
type FlowNodeShape = z.infer<typeof FlowNodeShapeSchema>;
/**
 * Maps each FlowNodeAction to its canvas rendering descriptor.
 * Used by the Studio flow canvas to determine shape, icon, and default size.
 */
declare const FlowNodeRenderDescriptorSchema: z.ZodObject<{
    action: z.ZodString;
    shape: z.ZodEnum<{
        rounded_rect: "rounded_rect";
        circle: "circle";
        diamond: "diamond";
        parallelogram: "parallelogram";
        hexagon: "hexagon";
        diamond_thick: "diamond_thick";
        attached_circle: "attached_circle";
        screen_rect: "screen_rect";
    }>;
    icon: z.ZodString;
    defaultLabel: z.ZodString;
    defaultWidth: z.ZodDefault<z.ZodNumber>;
    defaultHeight: z.ZodDefault<z.ZodNumber>;
    fillColor: z.ZodDefault<z.ZodString>;
    borderColor: z.ZodDefault<z.ZodString>;
    allowBoundaryEvents: z.ZodDefault<z.ZodBoolean>;
    paletteCategory: z.ZodEnum<{
        data: "data";
        event: "event";
        gateway: "gateway";
        subflow: "subflow";
        activity: "activity";
    }>;
}, z.core.$strip>;
type FlowNodeRenderDescriptor = z.infer<typeof FlowNodeRenderDescriptorSchema>;
/**
 * A node instance on the flow canvas, containing position and visual overrides.
 */
declare const FlowCanvasNodeSchema: z.ZodObject<{
    nodeId: z.ZodString;
    x: z.ZodNumber;
    y: z.ZodNumber;
    width: z.ZodOptional<z.ZodNumber>;
    height: z.ZodOptional<z.ZodNumber>;
    collapsed: z.ZodDefault<z.ZodBoolean>;
    fillColor: z.ZodOptional<z.ZodString>;
    borderColor: z.ZodOptional<z.ZodString>;
    annotation: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
type FlowCanvasNode = z.infer<typeof FlowCanvasNodeSchema>;
/**
 * Visual style for a sequence flow edge on the canvas.
 */
declare const FlowCanvasEdgeStyleSchema: z.ZodEnum<{
    bold: "bold";
    solid: "solid";
    dashed: "dashed";
    dotted: "dotted";
}>;
type FlowCanvasEdgeStyle = z.infer<typeof FlowCanvasEdgeStyleSchema>;
/**
 * A sequence-flow edge on the flow canvas with visual properties.
 */
declare const FlowCanvasEdgeSchema: z.ZodObject<{
    edgeId: z.ZodString;
    style: z.ZodDefault<z.ZodEnum<{
        bold: "bold";
        solid: "solid";
        dashed: "dashed";
        dotted: "dotted";
    }>>;
    color: z.ZodDefault<z.ZodString>;
    labelPosition: z.ZodDefault<z.ZodNumber>;
    waypoints: z.ZodOptional<z.ZodArray<z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
    }, z.core.$strip>>>;
    animated: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
type FlowCanvasEdge = z.infer<typeof FlowCanvasEdgeSchema>;
/**
 * Auto-layout algorithm for the flow canvas.
 */
declare const FlowLayoutAlgorithmSchema: z.ZodEnum<{
    manual: "manual";
    force: "force";
    dagre: "dagre";
    elk: "elk";
}>;
type FlowLayoutAlgorithm = z.infer<typeof FlowLayoutAlgorithmSchema>;
/**
 * Direction for the auto-layout.
 */
declare const FlowLayoutDirectionSchema: z.ZodEnum<{
    TB: "TB";
    BT: "BT";
    LR: "LR";
    RL: "RL";
}>;
type FlowLayoutDirection = z.infer<typeof FlowLayoutDirectionSchema>;
/**
 * Flow Builder configuration — top-level config for the Studio
 * automation flow canvas editor.
 */
declare const FlowBuilderConfigSchema: z.ZodObject<{
    snap: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        gridSize: z.ZodDefault<z.ZodNumber>;
        showGrid: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    zoom: z.ZodDefault<z.ZodObject<{
        min: z.ZodDefault<z.ZodNumber>;
        max: z.ZodDefault<z.ZodNumber>;
        default: z.ZodDefault<z.ZodNumber>;
        step: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    layoutAlgorithm: z.ZodDefault<z.ZodEnum<{
        manual: "manual";
        force: "force";
        dagre: "dagre";
        elk: "elk";
    }>>;
    layoutDirection: z.ZodDefault<z.ZodEnum<{
        TB: "TB";
        BT: "BT";
        LR: "LR";
        RL: "RL";
    }>>;
    nodeDescriptors: z.ZodOptional<z.ZodArray<z.ZodObject<{
        action: z.ZodString;
        shape: z.ZodEnum<{
            rounded_rect: "rounded_rect";
            circle: "circle";
            diamond: "diamond";
            parallelogram: "parallelogram";
            hexagon: "hexagon";
            diamond_thick: "diamond_thick";
            attached_circle: "attached_circle";
            screen_rect: "screen_rect";
        }>;
        icon: z.ZodString;
        defaultLabel: z.ZodString;
        defaultWidth: z.ZodDefault<z.ZodNumber>;
        defaultHeight: z.ZodDefault<z.ZodNumber>;
        fillColor: z.ZodDefault<z.ZodString>;
        borderColor: z.ZodDefault<z.ZodString>;
        allowBoundaryEvents: z.ZodDefault<z.ZodBoolean>;
        paletteCategory: z.ZodEnum<{
            data: "data";
            event: "event";
            gateway: "gateway";
            subflow: "subflow";
            activity: "activity";
        }>;
    }, z.core.$strip>>>;
    showMinimap: z.ZodDefault<z.ZodBoolean>;
    showPropertyPanel: z.ZodDefault<z.ZodBoolean>;
    showPalette: z.ZodDefault<z.ZodBoolean>;
    undoLimit: z.ZodDefault<z.ZodNumber>;
    animateExecution: z.ZodDefault<z.ZodBoolean>;
    connectionValidation: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
type FlowBuilderConfig = z.infer<typeof FlowBuilderConfigSchema>;
/**
 * Built-in node render descriptors for all standard FlowNodeAction types.
 * Studio implementations should merge user overrides on top of these defaults.
 */
declare const BUILT_IN_NODE_DESCRIPTORS: FlowNodeRenderDescriptor[];
/**
 * Type-safe helper for defining Flow Builder configuration.
 *
 * @example
 * ```typescript
 * const config = defineFlowBuilderConfig({
 *   layoutAlgorithm: 'dagre',
 *   layoutDirection: 'LR',
 *   showMinimap: true,
 *   snap: { gridSize: 20 },
 * });
 * ```
 */
declare function defineFlowBuilderConfig(input: z.input<typeof FlowBuilderConfigSchema>): FlowBuilderConfig;

/**
 * @module studio
 *
 * Studio Protocol — Plugin system for ObjectStack Studio
 *
 * Defines the extension model that allows metadata types to contribute
 * custom viewers, designers, sidebar groups, actions, and commands.
 * Also includes the Object Designer protocol for visual field editing,
 * relationship mapping, and ER diagram configuration.
 */

type index_ActionContribution = ActionContribution;
declare const index_ActionContributionSchema: typeof ActionContributionSchema;
declare const index_ActionLocationSchema: typeof ActionLocationSchema;
declare const index_ActivationEventSchema: typeof ActivationEventSchema;
declare const index_BUILT_IN_NODE_DESCRIPTORS: typeof BUILT_IN_NODE_DESCRIPTORS;
type index_CanvasSnapSettings = CanvasSnapSettings;
declare const index_CanvasSnapSettingsSchema: typeof CanvasSnapSettingsSchema;
type index_CanvasZoomSettings = CanvasZoomSettings;
declare const index_CanvasZoomSettingsSchema: typeof CanvasZoomSettingsSchema;
type index_CommandContribution = CommandContribution;
declare const index_CommandContributionSchema: typeof CommandContributionSchema;
type index_ERDiagramConfig = ERDiagramConfig;
declare const index_ERDiagramConfigSchema: typeof ERDiagramConfigSchema;
type index_ERLayoutAlgorithm = ERLayoutAlgorithm;
declare const index_ERLayoutAlgorithmSchema: typeof ERLayoutAlgorithmSchema;
type index_ERNodeDisplay = ERNodeDisplay;
declare const index_ERNodeDisplaySchema: typeof ERNodeDisplaySchema;
type index_ElementPaletteItem = ElementPaletteItem;
declare const index_ElementPaletteItemSchema: typeof ElementPaletteItemSchema;
type index_FieldEditorConfig = FieldEditorConfig;
declare const index_FieldEditorConfigSchema: typeof FieldEditorConfigSchema;
type index_FieldGroup = FieldGroup;
declare const index_FieldGroupSchema: typeof FieldGroupSchema;
type index_FieldPropertySection = FieldPropertySection;
declare const index_FieldPropertySectionSchema: typeof FieldPropertySectionSchema;
type index_FlowBuilderConfig = FlowBuilderConfig;
declare const index_FlowBuilderConfigSchema: typeof FlowBuilderConfigSchema;
type index_FlowCanvasEdge = FlowCanvasEdge;
declare const index_FlowCanvasEdgeSchema: typeof FlowCanvasEdgeSchema;
type index_FlowCanvasEdgeStyle = FlowCanvasEdgeStyle;
declare const index_FlowCanvasEdgeStyleSchema: typeof FlowCanvasEdgeStyleSchema;
type index_FlowCanvasNode = FlowCanvasNode;
declare const index_FlowCanvasNodeSchema: typeof FlowCanvasNodeSchema;
type index_FlowLayoutAlgorithm = FlowLayoutAlgorithm;
declare const index_FlowLayoutAlgorithmSchema: typeof FlowLayoutAlgorithmSchema;
type index_FlowLayoutDirection = FlowLayoutDirection;
declare const index_FlowLayoutDirectionSchema: typeof FlowLayoutDirectionSchema;
type index_FlowNodeRenderDescriptor = FlowNodeRenderDescriptor;
declare const index_FlowNodeRenderDescriptorSchema: typeof FlowNodeRenderDescriptorSchema;
type index_FlowNodeShape = FlowNodeShape;
declare const index_FlowNodeShapeSchema: typeof FlowNodeShapeSchema;
type index_InterfaceBuilderConfig = InterfaceBuilderConfig;
declare const index_InterfaceBuilderConfigSchema: typeof InterfaceBuilderConfigSchema;
type index_MetadataIconContribution = MetadataIconContribution;
declare const index_MetadataIconContributionSchema: typeof MetadataIconContributionSchema;
type index_MetadataViewerContribution = MetadataViewerContribution;
declare const index_MetadataViewerContributionSchema: typeof MetadataViewerContributionSchema;
type index_ObjectDesignerConfig = ObjectDesignerConfig;
declare const index_ObjectDesignerConfigSchema: typeof ObjectDesignerConfigSchema;
type index_ObjectDesignerDefaultView = ObjectDesignerDefaultView;
declare const index_ObjectDesignerDefaultViewSchema: typeof ObjectDesignerDefaultViewSchema;
type index_ObjectFilter = ObjectFilter;
declare const index_ObjectFilterSchema: typeof ObjectFilterSchema;
type index_ObjectListDisplayMode = ObjectListDisplayMode;
declare const index_ObjectListDisplayModeSchema: typeof ObjectListDisplayModeSchema;
type index_ObjectManagerConfig = ObjectManagerConfig;
declare const index_ObjectManagerConfigSchema: typeof ObjectManagerConfigSchema;
type index_ObjectPreviewConfig = ObjectPreviewConfig;
declare const index_ObjectPreviewConfigSchema: typeof ObjectPreviewConfigSchema;
type index_ObjectPreviewTab = ObjectPreviewTab;
declare const index_ObjectPreviewTabSchema: typeof ObjectPreviewTabSchema;
type index_ObjectSortField = ObjectSortField;
declare const index_ObjectSortFieldSchema: typeof ObjectSortFieldSchema;
type index_PageBuilderConfig = PageBuilderConfig;
declare const index_PageBuilderConfigSchema: typeof PageBuilderConfigSchema;
type index_PanelContribution = PanelContribution;
declare const index_PanelContributionSchema: typeof PanelContributionSchema;
declare const index_PanelLocationSchema: typeof PanelLocationSchema;
type index_RelationshipDisplay = RelationshipDisplay;
declare const index_RelationshipDisplaySchema: typeof RelationshipDisplaySchema;
type index_RelationshipMapperConfig = RelationshipMapperConfig;
declare const index_RelationshipMapperConfigSchema: typeof RelationshipMapperConfigSchema;
type index_SidebarGroupContribution = SidebarGroupContribution;
declare const index_SidebarGroupContributionSchema: typeof SidebarGroupContributionSchema;
type index_StudioPluginContributions = StudioPluginContributions;
declare const index_StudioPluginContributionsSchema: typeof StudioPluginContributionsSchema;
type index_StudioPluginManifest = StudioPluginManifest;
declare const index_StudioPluginManifestSchema: typeof StudioPluginManifestSchema;
type index_ViewMode = ViewMode;
declare const index_ViewModeSchema: typeof ViewModeSchema;
declare const index_defineFlowBuilderConfig: typeof defineFlowBuilderConfig;
declare const index_defineObjectDesignerConfig: typeof defineObjectDesignerConfig;
declare const index_defineStudioPlugin: typeof defineStudioPlugin;
declare namespace index {
  export { type index_ActionContribution as ActionContribution, index_ActionContributionSchema as ActionContributionSchema, index_ActionLocationSchema as ActionLocationSchema, index_ActivationEventSchema as ActivationEventSchema, index_BUILT_IN_NODE_DESCRIPTORS as BUILT_IN_NODE_DESCRIPTORS, type index_CanvasSnapSettings as CanvasSnapSettings, index_CanvasSnapSettingsSchema as CanvasSnapSettingsSchema, type index_CanvasZoomSettings as CanvasZoomSettings, index_CanvasZoomSettingsSchema as CanvasZoomSettingsSchema, type index_CommandContribution as CommandContribution, index_CommandContributionSchema as CommandContributionSchema, type index_ERDiagramConfig as ERDiagramConfig, index_ERDiagramConfigSchema as ERDiagramConfigSchema, type index_ERLayoutAlgorithm as ERLayoutAlgorithm, index_ERLayoutAlgorithmSchema as ERLayoutAlgorithmSchema, type index_ERNodeDisplay as ERNodeDisplay, index_ERNodeDisplaySchema as ERNodeDisplaySchema, type index_ElementPaletteItem as ElementPaletteItem, index_ElementPaletteItemSchema as ElementPaletteItemSchema, type index_FieldEditorConfig as FieldEditorConfig, index_FieldEditorConfigSchema as FieldEditorConfigSchema, type index_FieldGroup as FieldGroup, index_FieldGroupSchema as FieldGroupSchema, type index_FieldPropertySection as FieldPropertySection, index_FieldPropertySectionSchema as FieldPropertySectionSchema, type index_FlowBuilderConfig as FlowBuilderConfig, index_FlowBuilderConfigSchema as FlowBuilderConfigSchema, type index_FlowCanvasEdge as FlowCanvasEdge, index_FlowCanvasEdgeSchema as FlowCanvasEdgeSchema, type index_FlowCanvasEdgeStyle as FlowCanvasEdgeStyle, index_FlowCanvasEdgeStyleSchema as FlowCanvasEdgeStyleSchema, type index_FlowCanvasNode as FlowCanvasNode, index_FlowCanvasNodeSchema as FlowCanvasNodeSchema, type index_FlowLayoutAlgorithm as FlowLayoutAlgorithm, index_FlowLayoutAlgorithmSchema as FlowLayoutAlgorithmSchema, type index_FlowLayoutDirection as FlowLayoutDirection, index_FlowLayoutDirectionSchema as FlowLayoutDirectionSchema, type index_FlowNodeRenderDescriptor as FlowNodeRenderDescriptor, index_FlowNodeRenderDescriptorSchema as FlowNodeRenderDescriptorSchema, type index_FlowNodeShape as FlowNodeShape, index_FlowNodeShapeSchema as FlowNodeShapeSchema, type index_InterfaceBuilderConfig as InterfaceBuilderConfig, index_InterfaceBuilderConfigSchema as InterfaceBuilderConfigSchema, type index_MetadataIconContribution as MetadataIconContribution, index_MetadataIconContributionSchema as MetadataIconContributionSchema, type index_MetadataViewerContribution as MetadataViewerContribution, index_MetadataViewerContributionSchema as MetadataViewerContributionSchema, type index_ObjectDesignerConfig as ObjectDesignerConfig, index_ObjectDesignerConfigSchema as ObjectDesignerConfigSchema, type index_ObjectDesignerDefaultView as ObjectDesignerDefaultView, index_ObjectDesignerDefaultViewSchema as ObjectDesignerDefaultViewSchema, type index_ObjectFilter as ObjectFilter, index_ObjectFilterSchema as ObjectFilterSchema, type index_ObjectListDisplayMode as ObjectListDisplayMode, index_ObjectListDisplayModeSchema as ObjectListDisplayModeSchema, type index_ObjectManagerConfig as ObjectManagerConfig, index_ObjectManagerConfigSchema as ObjectManagerConfigSchema, type index_ObjectPreviewConfig as ObjectPreviewConfig, index_ObjectPreviewConfigSchema as ObjectPreviewConfigSchema, type index_ObjectPreviewTab as ObjectPreviewTab, index_ObjectPreviewTabSchema as ObjectPreviewTabSchema, type index_ObjectSortField as ObjectSortField, index_ObjectSortFieldSchema as ObjectSortFieldSchema, type index_PageBuilderConfig as PageBuilderConfig, index_PageBuilderConfigSchema as PageBuilderConfigSchema, type index_PanelContribution as PanelContribution, index_PanelContributionSchema as PanelContributionSchema, index_PanelLocationSchema as PanelLocationSchema, type index_RelationshipDisplay as RelationshipDisplay, index_RelationshipDisplaySchema as RelationshipDisplaySchema, type index_RelationshipMapperConfig as RelationshipMapperConfig, index_RelationshipMapperConfigSchema as RelationshipMapperConfigSchema, type index_SidebarGroupContribution as SidebarGroupContribution, index_SidebarGroupContributionSchema as SidebarGroupContributionSchema, type index_StudioPluginContributions as StudioPluginContributions, index_StudioPluginContributionsSchema as StudioPluginContributionsSchema, type index_StudioPluginManifest as StudioPluginManifest, index_StudioPluginManifestSchema as StudioPluginManifestSchema, type index_ViewMode as ViewMode, index_ViewModeSchema as ViewModeSchema, index_defineFlowBuilderConfig as defineFlowBuilderConfig, index_defineObjectDesignerConfig as defineObjectDesignerConfig, index_defineStudioPlugin as defineStudioPlugin };
}

export { type ObjectDesignerDefaultView as $, ActionContributionSchema as A, ObjectPreviewConfigSchema as B, CommandContributionSchema as C, ObjectDesignerDefaultViewSchema as D, ERLayoutAlgorithmSchema as E, FieldPropertySectionSchema as F, ObjectDesignerConfigSchema as G, type FieldPropertySection as H, type FieldGroup as I, type FieldEditorConfig as J, type RelationshipDisplay as K, type RelationshipMapperConfig as L, MetadataViewerContributionSchema as M, type ERLayoutAlgorithm as N, ObjectListDisplayModeSchema as O, PanelContributionSchema as P, type ERNodeDisplay as Q, RelationshipDisplaySchema as R, SidebarGroupContributionSchema as S, type ERDiagramConfig as T, type ObjectListDisplayMode as U, ViewModeSchema as V, type ObjectSortField as W, type ObjectFilter as X, type ObjectManagerConfig as Y, type ObjectPreviewTab as Z, type ObjectPreviewConfig as _, ActionLocationSchema as a, type ObjectDesignerConfig as a0, defineObjectDesignerConfig as a1, CanvasSnapSettingsSchema as a2, CanvasZoomSettingsSchema as a3, ElementPaletteItemSchema as a4, PageBuilderConfigSchema as a5, InterfaceBuilderConfigSchema as a6, type CanvasSnapSettings as a7, type CanvasZoomSettings as a8, type ElementPaletteItem as a9, type PageBuilderConfig as aa, type InterfaceBuilderConfig as ab, FlowNodeShapeSchema as ac, FlowNodeRenderDescriptorSchema as ad, FlowCanvasNodeSchema as ae, FlowCanvasEdgeStyleSchema as af, FlowCanvasEdgeSchema as ag, FlowLayoutAlgorithmSchema as ah, FlowLayoutDirectionSchema as ai, FlowBuilderConfigSchema as aj, BUILT_IN_NODE_DESCRIPTORS as ak, type FlowNodeShape as al, type FlowNodeRenderDescriptor as am, type FlowCanvasNode as an, type FlowCanvasEdgeStyle as ao, type FlowCanvasEdge as ap, type FlowLayoutAlgorithm as aq, type FlowLayoutDirection as ar, type FlowBuilderConfig as as, defineFlowBuilderConfig as at, MetadataIconContributionSchema as b, PanelLocationSchema as c, StudioPluginContributionsSchema as d, ActivationEventSchema as e, StudioPluginManifestSchema as f, type ViewMode as g, type MetadataViewerContribution as h, index as i, type SidebarGroupContribution as j, type ActionContribution as k, type MetadataIconContribution as l, type PanelContribution as m, type CommandContribution as n, type StudioPluginContributions as o, type StudioPluginManifest as p, defineStudioPlugin as q, FieldGroupSchema as r, FieldEditorConfigSchema as s, RelationshipMapperConfigSchema as t, ERNodeDisplaySchema as u, ERDiagramConfigSchema as v, ObjectSortFieldSchema as w, ObjectFilterSchema as x, ObjectManagerConfigSchema as y, ObjectPreviewTabSchema as z };
