import { z } from 'zod';

declare const ActionParamSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    field: z.ZodOptional<z.ZodString>;
    objectOverride: z.ZodOptional<z.ZodString>;
    label: z.ZodOptional<z.ZodString>;
    type: z.ZodOptional<z.ZodEnum<{
        number: "number";
        boolean: "boolean";
        date: "date";
        record: "record";
        file: "file";
        code: "code";
        datetime: "datetime";
        signature: "signature";
        progress: "progress";
        url: "url";
        lookup: "lookup";
        master_detail: "master_detail";
        currency: "currency";
        percent: "percent";
        password: "password";
        secret: "secret";
        email: "email";
        time: "time";
        user: "user";
        text: "text";
        textarea: "textarea";
        phone: "phone";
        markdown: "markdown";
        html: "html";
        richtext: "richtext";
        toggle: "toggle";
        select: "select";
        multiselect: "multiselect";
        radio: "radio";
        checkboxes: "checkboxes";
        tree: "tree";
        image: "image";
        avatar: "avatar";
        video: "video";
        audio: "audio";
        formula: "formula";
        summary: "summary";
        autonumber: "autonumber";
        composite: "composite";
        repeater: "repeater";
        location: "location";
        address: "address";
        json: "json";
        color: "color";
        rating: "rating";
        slider: "slider";
        qrcode: "qrcode";
        tags: "tags";
        vector: "vector";
    }>>;
    required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    options: z.ZodOptional<z.ZodArray<z.ZodObject<{
        label: z.ZodString;
        value: z.ZodString;
    }, z.core.$strip>>>;
    placeholder: z.ZodOptional<z.ZodString>;
    helpText: z.ZodOptional<z.ZodString>;
    defaultValue: z.ZodOptional<z.ZodUnknown>;
    defaultFromRow: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
/**
 * Action type enum values.
 */
declare const ActionType: z.ZodEnum<{
    url: "url";
    form: "form";
    flow: "flow";
    api: "api";
    script: "script";
    modal: "modal";
}>;
/**
 * Action Schema
 *
 * **NAMING CONVENTION:**
 * Action names are machine identifiers used in code and must be lowercase snake_case.
 *
 * **TARGET BINDING:**
 * The `target` field is the canonical way to bind an action to its handler.
 * - `type: 'script'` — `target` is recommended (references a script/function name).
 * - `type: 'url'`    — `target` is **required** (the URL to navigate to).
 * - `type: 'flow'`   — `target` is **required** (the flow name to invoke).
 * - `type: 'modal'`  — `target` is **required** (the modal/page name to open).
 * - `type: 'api'`    — `target` is **required** (the API endpoint to call).
 * - `type: 'form'`   — `target` is **required** (the FormView name to open, routed to `/console/forms/:name`).
 *
 * The `execute` field is **deprecated** and will be removed in a future version.
 * If `execute` is provided without `target`, it is automatically migrated to `target`.
 *
 * @example Good action names
 * - 'on_close_deal'
 * - 'send_welcome_email'
 * - 'approve_contract'
 * - 'export_report'
 *
 * @example Bad action names (will be rejected)
 * - 'OnCloseDeal' (PascalCase)
 * - 'sendEmail' (camelCase)
 * - 'Send Email' (spaces)
 *
 * Note: The action name is the configuration ID. JavaScript function names can use camelCase,
 * but the metadata ID must be lowercase snake_case.
 */
/**
 * Action Location — where an action is allowed to surface in the UI.
 *
 * Canonical list (single source of truth for the whole platform). Renderers,
 * the ActionEngine, the Studio designer dropdowns, and `objectui` consumers
 * MUST import from this constant rather than re-declaring their own enum —
 * adding a new location should require touching this one file only.
 *
 * Semantics:
 * - `list_toolbar`    — header/toolbar of a list view (bulk actions, "New", export).
 * - `list_item`       — per-row action on a list/grid row (Salesforce row-level menu).
 * - `record_header`   — primary actions in the record-detail title bar.
 * - `record_more`     — overflow menu under the "More" / ⋯ button on a record.
 * - `record_related`  — actions on a related list section inside a record.
 * - `record_section`  — actions surfaced inside a body section/tab of a record
 *                       (e.g. a Security tab grouping change-password, 2FA, etc.).
 * - `global_nav`      — global navigation/command-palette level actions.
 */
declare const ACTION_LOCATIONS: readonly ["list_toolbar", "list_item", "record_header", "record_more", "record_related", "record_section", "global_nav"];
declare const ActionLocationSchema: z.ZodEnum<{
    list_toolbar: "list_toolbar";
    list_item: "list_item";
    record_header: "record_header";
    record_more: "record_more";
    record_related: "record_related";
    record_section: "record_section";
    global_nav: "global_nav";
}>;
type ActionLocation = z.infer<typeof ActionLocationSchema>;
/**
 * AI exposure block (ADR-0011 "Actions as AI Tools").
 *
 * **Opt-in, default off.** An action becomes an AI-callable tool only when
 * `exposed: true`. This is a deliberate governance gate: in an AI-authoring
 * world the platform's value is that a human can govern exactly which
 * capabilities the agent fleet is allowed to invoke — a half-finished or
 * unreviewed action must never be silently armed.
 *
 * When exposed, `description` is **required** — it is the LLM-facing contract
 * (when/why to call), authored explicitly rather than derived from the
 * UI `label`. The bridge in `@objectstack/service-ai` translates this block
 * into an `AIToolDefinition`.
 */
declare const ActionAiSchema: z.ZodObject<{
    exposed: z.ZodDefault<z.ZodBoolean>;
    description: z.ZodOptional<z.ZodString>;
    category: z.ZodOptional<z.ZodEnum<{
        action: "action";
        data: "data";
        flow: "flow";
        integration: "integration";
        vector_search: "vector_search";
        analytics: "analytics";
        utility: "utility";
    }>>;
    paramHints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        description: z.ZodOptional<z.ZodString>;
        enum: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
        examples: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
    }, z.core.$strip>>>;
    outputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    requiresConfirmation: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
type ActionAi = z.infer<typeof ActionAiSchema>;
declare const ActionSchema: z.ZodPipe<z.ZodObject<{
    name: z.ZodString;
    label: z.ZodString;
    objectName: z.ZodOptional<z.ZodString>;
    icon: z.ZodOptional<z.ZodString>;
    locations: z.ZodOptional<z.ZodArray<z.ZodEnum<{
        list_toolbar: "list_toolbar";
        list_item: "list_item";
        record_header: "record_header";
        record_more: "record_more";
        record_related: "record_related";
        record_section: "record_section";
        global_nav: "global_nav";
    }>>>;
    component: z.ZodOptional<z.ZodEnum<{
        "action:button": "action:button";
        "action:icon": "action:icon";
        "action:menu": "action:menu";
        "action:group": "action:group";
    }>>;
    type: z.ZodDefault<z.ZodEnum<{
        url: "url";
        form: "form";
        flow: "flow";
        api: "api";
        script: "script";
        modal: "modal";
    }>>;
    target: z.ZodOptional<z.ZodString>;
    openIn: z.ZodOptional<z.ZodEnum<{
        self: "self";
        "new-tab": "new-tab";
    }>>;
    body: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
        language: z.ZodLiteral<"expression">;
        source: z.ZodString;
    }, z.core.$strip>, z.ZodObject<{
        language: z.ZodLiteral<"js">;
        source: z.ZodString;
        capabilities: z.ZodDefault<z.ZodArray<z.ZodEnum<{
            "api.read": "api.read";
            "api.write": "api.write";
            "api.transaction": "api.transaction";
            "crypto.uuid": "crypto.uuid";
            "crypto.hash": "crypto.hash";
            log: "log";
        }>>>;
        timeoutMs: z.ZodOptional<z.ZodNumber>;
        memoryMb: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>], "language">>;
    execute: z.ZodOptional<z.ZodString>;
    params: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        field: z.ZodOptional<z.ZodString>;
        objectOverride: z.ZodOptional<z.ZodString>;
        label: z.ZodOptional<z.ZodString>;
        type: z.ZodOptional<z.ZodEnum<{
            number: "number";
            boolean: "boolean";
            date: "date";
            record: "record";
            file: "file";
            code: "code";
            datetime: "datetime";
            signature: "signature";
            progress: "progress";
            url: "url";
            lookup: "lookup";
            master_detail: "master_detail";
            currency: "currency";
            percent: "percent";
            password: "password";
            secret: "secret";
            email: "email";
            time: "time";
            user: "user";
            text: "text";
            textarea: "textarea";
            phone: "phone";
            markdown: "markdown";
            html: "html";
            richtext: "richtext";
            toggle: "toggle";
            select: "select";
            multiselect: "multiselect";
            radio: "radio";
            checkboxes: "checkboxes";
            tree: "tree";
            image: "image";
            avatar: "avatar";
            video: "video";
            audio: "audio";
            formula: "formula";
            summary: "summary";
            autonumber: "autonumber";
            composite: "composite";
            repeater: "repeater";
            location: "location";
            address: "address";
            json: "json";
            color: "color";
            rating: "rating";
            slider: "slider";
            qrcode: "qrcode";
            tags: "tags";
            vector: "vector";
        }>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        options: z.ZodOptional<z.ZodArray<z.ZodObject<{
            label: z.ZodString;
            value: z.ZodString;
        }, z.core.$strip>>>;
        placeholder: z.ZodOptional<z.ZodString>;
        helpText: z.ZodOptional<z.ZodString>;
        defaultValue: z.ZodOptional<z.ZodUnknown>;
        defaultFromRow: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>>;
    variant: z.ZodOptional<z.ZodEnum<{
        link: "link";
        primary: "primary";
        secondary: "secondary";
        danger: "danger";
        ghost: "ghost";
    }>>;
    confirmText: z.ZodOptional<z.ZodString>;
    successMessage: z.ZodOptional<z.ZodString>;
    errorMessage: z.ZodOptional<z.ZodString>;
    refreshAfter: z.ZodDefault<z.ZodBoolean>;
    undoable: z.ZodOptional<z.ZodBoolean>;
    resultDialog: z.ZodOptional<z.ZodObject<{
        title: z.ZodOptional<z.ZodString>;
        description: z.ZodOptional<z.ZodString>;
        acknowledge: z.ZodOptional<z.ZodString>;
        format: z.ZodOptional<z.ZodEnum<{
            secret: "secret";
            text: "text";
            json: "json";
            qrcode: "qrcode";
            "code-list": "code-list";
        }>>;
        fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
            path: z.ZodString;
            label: z.ZodOptional<z.ZodString>;
            format: z.ZodOptional<z.ZodEnum<{
                secret: "secret";
                text: "text";
                json: "json";
                qrcode: "qrcode";
                "code-list": "code-list";
            }>>;
        }, z.core.$strip>>>;
    }, z.core.$strip>>;
    visible: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<{
        dialect: "cel" | "js" | "cron" | "template";
        source?: string | undefined;
        ast?: unknown;
        meta?: {
            rationale?: string | undefined;
            generatedBy?: string | undefined;
        } | undefined;
    }, string>>, z.ZodObject<{
        dialect: z.ZodEnum<{
            cel: "cel";
            js: "js";
            cron: "cron";
            template: "template";
        }>;
        source: z.ZodOptional<z.ZodString>;
        ast: z.ZodOptional<z.ZodUnknown>;
        meta: z.ZodOptional<z.ZodObject<{
            rationale: z.ZodOptional<z.ZodString>;
            generatedBy: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
    }, z.core.$strip>]>>;
    disabled: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<{
        dialect: "cel" | "js" | "cron" | "template";
        source?: string | undefined;
        ast?: unknown;
        meta?: {
            rationale?: string | undefined;
            generatedBy?: string | undefined;
        } | undefined;
    }, string>>, z.ZodObject<{
        dialect: z.ZodEnum<{
            cel: "cel";
            js: "js";
            cron: "cron";
            template: "template";
        }>;
        source: z.ZodOptional<z.ZodString>;
        ast: z.ZodOptional<z.ZodUnknown>;
        meta: z.ZodOptional<z.ZodObject<{
            rationale: z.ZodOptional<z.ZodString>;
            generatedBy: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
    }, z.core.$strip>]>]>>;
    requiredPermissions: z.ZodOptional<z.ZodArray<z.ZodString>>;
    shortcut: z.ZodOptional<z.ZodString>;
    bulkEnabled: z.ZodOptional<z.ZodBoolean>;
    ai: z.ZodOptional<z.ZodObject<{
        exposed: z.ZodDefault<z.ZodBoolean>;
        description: z.ZodOptional<z.ZodString>;
        category: z.ZodOptional<z.ZodEnum<{
            action: "action";
            data: "data";
            flow: "flow";
            integration: "integration";
            vector_search: "vector_search";
            analytics: "analytics";
            utility: "utility";
        }>>;
        paramHints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            description: z.ZodOptional<z.ZodString>;
            enum: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
            examples: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
        }, z.core.$strip>>>;
        outputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        requiresConfirmation: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>;
    recordIdParam: z.ZodOptional<z.ZodString>;
    recordIdField: z.ZodOptional<z.ZodString>;
    bodyShape: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"flat">, z.ZodObject<{
        wrap: z.ZodString;
    }, z.core.$strip>]>>;
    method: z.ZodOptional<z.ZodEnum<{
        POST: "POST";
        PATCH: "PATCH";
        PUT: "PUT";
        DELETE: "DELETE";
    }>>;
    bodyExtra: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    mode: z.ZodOptional<z.ZodEnum<{
        custom: "custom";
        delete: "delete";
        edit: "edit";
        create: "create";
    }>>;
    opensInNewTab: z.ZodOptional<z.ZodBoolean>;
    newTabUrl: z.ZodOptional<z.ZodString>;
    timeout: z.ZodOptional<z.ZodNumber>;
    aria: z.ZodOptional<z.ZodObject<{
        ariaLabel: z.ZodOptional<z.ZodString>;
        ariaDescribedBy: z.ZodOptional<z.ZodString>;
        role: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>, z.ZodTransform<{
    name: string;
    label: string;
    type: "url" | "form" | "flow" | "api" | "script" | "modal";
    refreshAfter: boolean;
    objectName?: string | undefined;
    icon?: string | undefined;
    locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
    component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
    target?: string | undefined;
    openIn?: "self" | "new-tab" | undefined;
    body?: {
        language: "expression";
        source: string;
    } | {
        language: "js";
        source: string;
        capabilities: ("api.read" | "api.write" | "api.transaction" | "crypto.uuid" | "crypto.hash" | "log")[];
        timeoutMs?: number | undefined;
        memoryMb?: number | undefined;
    } | undefined;
    execute?: string | undefined;
    params?: {
        required: boolean;
        name?: string | undefined;
        field?: string | undefined;
        objectOverride?: string | undefined;
        label?: string | undefined;
        type?: "number" | "boolean" | "date" | "record" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "lookup" | "master_detail" | "currency" | "percent" | "password" | "secret" | "email" | "time" | "user" | "text" | "textarea" | "phone" | "markdown" | "html" | "richtext" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
        options?: {
            label: string;
            value: string;
        }[] | undefined;
        placeholder?: string | undefined;
        helpText?: string | undefined;
        defaultValue?: unknown;
        defaultFromRow?: boolean | undefined;
    }[] | undefined;
    variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
    confirmText?: string | undefined;
    successMessage?: string | undefined;
    errorMessage?: string | undefined;
    undoable?: boolean | undefined;
    resultDialog?: {
        title?: string | undefined;
        description?: string | undefined;
        acknowledge?: string | undefined;
        format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
        fields?: {
            path: string;
            label?: string | undefined;
            format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
        }[] | undefined;
    } | undefined;
    visible?: {
        dialect: "cel" | "js" | "cron" | "template";
        source?: string | undefined;
        ast?: unknown;
        meta?: {
            rationale?: string | undefined;
            generatedBy?: string | undefined;
        } | undefined;
    } | undefined;
    disabled?: boolean | {
        dialect: "cel" | "js" | "cron" | "template";
        source?: string | undefined;
        ast?: unknown;
        meta?: {
            rationale?: string | undefined;
            generatedBy?: string | undefined;
        } | undefined;
    } | undefined;
    requiredPermissions?: string[] | undefined;
    shortcut?: string | undefined;
    bulkEnabled?: boolean | undefined;
    ai?: {
        exposed: boolean;
        description?: string | undefined;
        category?: "action" | "data" | "flow" | "integration" | "vector_search" | "analytics" | "utility" | undefined;
        paramHints?: Record<string, {
            description?: string | undefined;
            enum?: (string | number)[] | undefined;
            examples?: unknown[] | undefined;
        }> | undefined;
        outputSchema?: Record<string, unknown> | undefined;
        requiresConfirmation?: boolean | undefined;
    } | undefined;
    recordIdParam?: string | undefined;
    recordIdField?: string | undefined;
    bodyShape?: "flat" | {
        wrap: string;
    } | undefined;
    method?: "POST" | "PATCH" | "PUT" | "DELETE" | undefined;
    bodyExtra?: Record<string, unknown> | undefined;
    mode?: "custom" | "delete" | "edit" | "create" | undefined;
    opensInNewTab?: boolean | undefined;
    newTabUrl?: string | undefined;
    timeout?: number | undefined;
    aria?: {
        ariaLabel?: string | undefined;
        ariaDescribedBy?: string | undefined;
        role?: string | undefined;
    } | undefined;
}, {
    name: string;
    label: string;
    type: "url" | "form" | "flow" | "api" | "script" | "modal";
    refreshAfter: boolean;
    objectName?: string | undefined;
    icon?: string | undefined;
    locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
    component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
    target?: string | undefined;
    openIn?: "self" | "new-tab" | undefined;
    body?: {
        language: "expression";
        source: string;
    } | {
        language: "js";
        source: string;
        capabilities: ("api.read" | "api.write" | "api.transaction" | "crypto.uuid" | "crypto.hash" | "log")[];
        timeoutMs?: number | undefined;
        memoryMb?: number | undefined;
    } | undefined;
    execute?: string | undefined;
    params?: {
        required: boolean;
        name?: string | undefined;
        field?: string | undefined;
        objectOverride?: string | undefined;
        label?: string | undefined;
        type?: "number" | "boolean" | "date" | "record" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "lookup" | "master_detail" | "currency" | "percent" | "password" | "secret" | "email" | "time" | "user" | "text" | "textarea" | "phone" | "markdown" | "html" | "richtext" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
        options?: {
            label: string;
            value: string;
        }[] | undefined;
        placeholder?: string | undefined;
        helpText?: string | undefined;
        defaultValue?: unknown;
        defaultFromRow?: boolean | undefined;
    }[] | undefined;
    variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
    confirmText?: string | undefined;
    successMessage?: string | undefined;
    errorMessage?: string | undefined;
    undoable?: boolean | undefined;
    resultDialog?: {
        title?: string | undefined;
        description?: string | undefined;
        acknowledge?: string | undefined;
        format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
        fields?: {
            path: string;
            label?: string | undefined;
            format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
        }[] | undefined;
    } | undefined;
    visible?: {
        dialect: "cel" | "js" | "cron" | "template";
        source?: string | undefined;
        ast?: unknown;
        meta?: {
            rationale?: string | undefined;
            generatedBy?: string | undefined;
        } | undefined;
    } | undefined;
    disabled?: boolean | {
        dialect: "cel" | "js" | "cron" | "template";
        source?: string | undefined;
        ast?: unknown;
        meta?: {
            rationale?: string | undefined;
            generatedBy?: string | undefined;
        } | undefined;
    } | undefined;
    requiredPermissions?: string[] | undefined;
    shortcut?: string | undefined;
    bulkEnabled?: boolean | undefined;
    ai?: {
        exposed: boolean;
        description?: string | undefined;
        category?: "action" | "data" | "flow" | "integration" | "vector_search" | "analytics" | "utility" | undefined;
        paramHints?: Record<string, {
            description?: string | undefined;
            enum?: (string | number)[] | undefined;
            examples?: unknown[] | undefined;
        }> | undefined;
        outputSchema?: Record<string, unknown> | undefined;
        requiresConfirmation?: boolean | undefined;
    } | undefined;
    recordIdParam?: string | undefined;
    recordIdField?: string | undefined;
    bodyShape?: "flat" | {
        wrap: string;
    } | undefined;
    method?: "POST" | "PATCH" | "PUT" | "DELETE" | undefined;
    bodyExtra?: Record<string, unknown> | undefined;
    mode?: "custom" | "delete" | "edit" | "create" | undefined;
    opensInNewTab?: boolean | undefined;
    newTabUrl?: string | undefined;
    timeout?: number | undefined;
    aria?: {
        ariaLabel?: string | undefined;
        ariaDescribedBy?: string | undefined;
        role?: string | undefined;
    } | undefined;
}>>;
type ActionParam = z.infer<typeof ActionParamSchema>;
type ActionInput = z.input<typeof ActionSchema>;
type Action = z.infer<typeof ActionSchema>;
/**
 * Action Factory Helper
 */
declare const Action: {
    readonly create: (config: z.input<typeof ActionSchema>) => Action;
};
/**
 * Type-safe factory for a global or object action. Validates at authoring time via
 * `.parse()` and accepts input-shape config (optional defaults, CEL
 * shorthand) — preferred over a bare `: Action` literal.
 */
declare function defineAction(config: z.input<typeof ActionSchema>): Action;

export { Action as A, ACTION_LOCATIONS as a, type ActionAi as b, ActionAiSchema as c, defineAction as d, type ActionInput as e, type ActionLocation as f, ActionLocationSchema as g, type ActionParam as h, ActionParamSchema as i, ActionSchema as j, ActionType as k };
