import { S as StateNodeConfig } from './state-machine.zod-DoC0JvQb.js';
import { z } from 'zod';

/**
 * 1. Script/Expression Validation
 * Generic formula-based validation.
 */
declare const ScriptValidationSchema: z.ZodObject<{
    name: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    active: z.ZodDefault<z.ZodBoolean>;
    events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        insert: "insert";
        update: "update";
        delete: "delete";
    }>>>;
    priority: z.ZodDefault<z.ZodNumber>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    severity: z.ZodDefault<z.ZodEnum<{
        error: "error";
        warning: "warning";
        info: "info";
    }>>;
    message: z.ZodString;
    type: z.ZodLiteral<"script">;
    condition: z.ZodString;
}, z.core.$strip>;
/**
 * 2. Uniqueness Validation
 * specialized optimized check for unique constraints.
 */
declare const UniquenessValidationSchema: z.ZodObject<{
    name: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    active: z.ZodDefault<z.ZodBoolean>;
    events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        insert: "insert";
        update: "update";
        delete: "delete";
    }>>>;
    priority: z.ZodDefault<z.ZodNumber>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    severity: z.ZodDefault<z.ZodEnum<{
        error: "error";
        warning: "warning";
        info: "info";
    }>>;
    message: z.ZodString;
    type: z.ZodLiteral<"unique">;
    fields: z.ZodArray<z.ZodString>;
    scope: z.ZodOptional<z.ZodString>;
    caseSensitive: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
/**
 * 3. State Machine Validation
 * State transition logic.
 */
declare const StateMachineValidationSchema: z.ZodObject<{
    name: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    active: z.ZodDefault<z.ZodBoolean>;
    events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        insert: "insert";
        update: "update";
        delete: "delete";
    }>>>;
    priority: z.ZodDefault<z.ZodNumber>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    severity: z.ZodDefault<z.ZodEnum<{
        error: "error";
        warning: "warning";
        info: "info";
    }>>;
    message: z.ZodString;
    type: z.ZodLiteral<"state_machine">;
    field: z.ZodString;
    transitions: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
/**
 * 4. Value Format Validation
 * Regex or specialized formats.
 */
declare const FormatValidationSchema: z.ZodObject<{
    name: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    active: z.ZodDefault<z.ZodBoolean>;
    events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        insert: "insert";
        update: "update";
        delete: "delete";
    }>>>;
    priority: z.ZodDefault<z.ZodNumber>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    severity: z.ZodDefault<z.ZodEnum<{
        error: "error";
        warning: "warning";
        info: "info";
    }>>;
    message: z.ZodString;
    type: z.ZodLiteral<"format">;
    field: z.ZodString;
    regex: z.ZodOptional<z.ZodString>;
    format: z.ZodOptional<z.ZodEnum<{
        json: "json";
        email: "email";
        url: "url";
        phone: "phone";
    }>>;
}, z.core.$strip>;
/**
 * 5. Cross-Field Validation
 * Validates relationships between multiple fields.
 *
 * ## Use Cases
 * - Date range validations (end_date > start_date)
 * - Amount comparisons (discount < total)
 * - Complex business rules involving multiple fields
 *
 * ## Salesforce Examples
 *
 * ### Example 1: Close Date Must Be In Current or Future Month
 * **Salesforce Formula:**
 * ```
 * MONTH(CloseDate) < MONTH(TODAY()) ||
 * YEAR(CloseDate) < YEAR(TODAY())
 * ```
 *
 * **ObjectStack Equivalent:**
 * ```typescript
 * {
 *   type: 'cross_field',
 *   name: 'close_date_future',
 *   condition: 'MONTH(close_date) >= MONTH(TODAY()) AND YEAR(close_date) >= YEAR(TODAY())',
 *   fields: ['close_date'],
 *   message: 'Close Date must be in the current or a future month'
 * }
 * ```
 *
 * ### Example 2: Discount Validation
 * **Salesforce Formula:**
 * ```
 * Discount__c > (Amount__c * 0.40)
 * ```
 *
 * **ObjectStack Equivalent:**
 * ```typescript
 * {
 *   type: 'cross_field',
 *   name: 'discount_limit',
 *   condition: 'discount > (amount * 0.40)',
 *   fields: ['discount', 'amount'],
 *   message: 'Discount cannot exceed 40% of the amount'
 * }
 * ```
 *
 * ### Example 3: Opportunity Must Have Products
 * **Salesforce Formula:**
 * ```
 * ISBLANK(Products__c) && ISPICKVAL(StageName, "Closed Won")
 * ```
 *
 * **ObjectStack Equivalent:**
 * ```typescript
 * {
 *   type: 'cross_field',
 *   name: 'products_required_for_won',
 *   condition: 'products = null AND stage = "closed_won"',
 *   fields: ['products', 'stage'],
 *   message: 'Opportunity must have products to be marked as Closed Won'
 * }
 * ```
 */
declare const CrossFieldValidationSchema: z.ZodObject<{
    name: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    active: z.ZodDefault<z.ZodBoolean>;
    events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        insert: "insert";
        update: "update";
        delete: "delete";
    }>>>;
    priority: z.ZodDefault<z.ZodNumber>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    severity: z.ZodDefault<z.ZodEnum<{
        error: "error";
        warning: "warning";
        info: "info";
    }>>;
    message: z.ZodString;
    type: z.ZodLiteral<"cross_field">;
    condition: z.ZodString;
    fields: z.ZodArray<z.ZodString>;
}, z.core.$strip>;
/**
 * 6. JSON Structure Validation
 * Validates JSON fields against a JSON Schema.
 *
 * ## Use Cases
 * - Validating configuration objects stored in JSON fields
 * - Enforcing API payload structures
 * - Complex nested data validation
 */
declare const JSONValidationSchema: z.ZodObject<{
    name: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    active: z.ZodDefault<z.ZodBoolean>;
    events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        insert: "insert";
        update: "update";
        delete: "delete";
    }>>>;
    priority: z.ZodDefault<z.ZodNumber>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    severity: z.ZodDefault<z.ZodEnum<{
        error: "error";
        warning: "warning";
        info: "info";
    }>>;
    message: z.ZodString;
    type: z.ZodLiteral<"json_schema">;
    field: z.ZodString;
    schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
}, z.core.$strip>;
/**
 * 7. Async Validation
 * Remote validation via API call or database query.
 *
 * ## Use Cases
 *
 * ### 1. Email Uniqueness Check
 * Check if an email address is already registered in the system.
 * ```typescript
 * {
 *   type: 'async',
 *   name: 'unique_email',
 *   field: 'email',
 *   validatorUrl: '/api/users/check-email',
 *   message: 'This email address is already registered',
 *   debounce: 500,  // Wait 500ms after user stops typing
 *   timeout: 3000
 * }
 * ```
 *
 * ### 2. Username Availability
 * Verify username is available before form submission.
 * ```typescript
 * {
 *   type: 'async',
 *   name: 'username_available',
 *   field: 'username',
 *   validatorUrl: '/api/users/check-username',
 *   message: 'This username is already taken',
 *   debounce: 300,
 *   timeout: 2000
 * }
 * ```
 *
 * ### 3. Tax ID Validation
 * Validate tax ID with government API (e.g., IRS, HMRC).
 * ```typescript
 * {
 *   type: 'async',
 *   name: 'validate_tax_id',
 *   field: 'tax_id',
 *   validatorFunction: 'validateTaxIdWithIRS',
 *   message: 'Invalid Tax ID number',
 *   timeout: 10000,  // Government APIs may be slow
 *   params: { country: 'US', format: 'EIN' }
 * }
 * ```
 *
 * ### 4. Credit Card Validation
 * Verify credit card with payment gateway without charging.
 * ```typescript
 * {
 *   type: 'async',
 *   name: 'validate_card',
 *   field: 'card_number',
 *   validatorUrl: 'https://api.stripe.com/v1/tokens/validate',
 *   message: 'Invalid credit card number',
 *   timeout: 5000,
 *   params: {
 *     mode: 'validate_only',
 *     checkFunds: false
 *   }
 * }
 * ```
 *
 * ### 5. Address Validation
 * Validate and standardize addresses using geocoding services.
 * ```typescript
 * {
 *   type: 'async',
 *   name: 'validate_address',
 *   field: 'street_address',
 *   validatorFunction: 'validateAddressWithGoogleMaps',
 *   message: 'Unable to verify address',
 *   timeout: 4000,
 *   params: {
 *     includeFields: ['city', 'state', 'zip'],
 *     strictMode: true,
 *     country: 'US'
 *   }
 * }
 * ```
 *
 * ### 6. Domain Name Availability
 * Check if domain name is available for registration.
 * ```typescript
 * {
 *   type: 'async',
 *   name: 'domain_available',
 *   field: 'domain_name',
 *   validatorUrl: '/api/domains/check-availability',
 *   message: 'This domain is already taken or reserved',
 *   debounce: 500,
 *   timeout: 2000
 * }
 * ```
 *
 * ### 7. Coupon Code Validation
 * Verify coupon code is valid and not expired.
 * ```typescript
 * {
 *   type: 'async',
 *   name: 'validate_coupon',
 *   field: 'coupon_code',
 *   validatorUrl: '/api/coupons/validate',
 *   message: 'Invalid or expired coupon code',
 *   timeout: 2000,
 *   params: {
 *     checkExpiration: true,
 *     checkUsageLimit: true,
 *     userId: '{{current_user_id}}'
 *   }
 * }
 * ```
 */
declare const AsyncValidationSchema: z.ZodObject<{
    name: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    active: z.ZodDefault<z.ZodBoolean>;
    events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        insert: "insert";
        update: "update";
        delete: "delete";
    }>>>;
    priority: z.ZodDefault<z.ZodNumber>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    severity: z.ZodDefault<z.ZodEnum<{
        error: "error";
        warning: "warning";
        info: "info";
    }>>;
    message: z.ZodString;
    type: z.ZodLiteral<"async">;
    field: z.ZodString;
    validatorUrl: z.ZodOptional<z.ZodString>;
    method: z.ZodDefault<z.ZodEnum<{
        GET: "GET";
        POST: "POST";
    }>>;
    headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    validatorFunction: z.ZodOptional<z.ZodString>;
    timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    debounce: z.ZodOptional<z.ZodNumber>;
    params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
/**
 * 8. Custom Validator Function
 * User-defined validation logic with code reference.
 */
declare const CustomValidatorSchema: z.ZodObject<{
    name: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    active: z.ZodDefault<z.ZodBoolean>;
    events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        insert: "insert";
        update: "update";
        delete: "delete";
    }>>>;
    priority: z.ZodDefault<z.ZodNumber>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    severity: z.ZodDefault<z.ZodEnum<{
        error: "error";
        warning: "warning";
        info: "info";
    }>>;
    message: z.ZodString;
    type: z.ZodLiteral<"custom">;
    handler: z.ZodString;
    params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
/**
 * 9. Master Validation Rule Schema
 */
/** Base type for validation rules - used for z.lazy() recursive type annotation */
interface BaseValidationRuleShape {
    type: string;
    name: string;
    message: string;
    label?: string;
    description?: string;
    active?: boolean;
    events?: ('insert' | 'update' | 'delete')[];
    priority?: number;
    tags?: string[];
    severity?: 'error' | 'warning' | 'info';
    [key: string]: unknown;
}
declare const ValidationRuleSchema: z.ZodType<BaseValidationRuleShape>;
/**
 * 8. Conditional Validation
 * Validation that only applies when a condition is met.
 *
 * ## Overview
 * Conditional validations follow the pattern: "Validate X only if Y is true"
 * This allows for context-aware validation rules that adapt to different scenarios.
 *
 * ## Use Cases
 *
 * ### 1. Validate Based on Record Type
 * Apply different validation rules based on the type of record.
 * ```typescript
 * {
 *   type: 'conditional',
 *   name: 'enterprise_approval_required',
 *   when: 'account_type = "enterprise"',
 *   message: 'Enterprise validation',
 *   then: {
 *     type: 'script',
 *     name: 'require_approval',
 *     message: 'Enterprise accounts require manager approval',
 *     condition: 'approval_status = null'
 *   }
 * }
 * ```
 *
 * ### 2. Conditional Field Requirements
 * Require certain fields only when specific conditions are met.
 * ```typescript
 * {
 *   type: 'conditional',
 *   name: 'shipping_address_when_required',
 *   when: 'requires_shipping = true',
 *   message: 'Shipping validation',
 *   then: {
 *     type: 'script',
 *     name: 'shipping_address_required',
 *     message: 'Shipping address is required for physical products',
 *     condition: 'shipping_address = null OR shipping_address = ""'
 *   }
 * }
 * ```
 *
 * ### 3. Amount-Based Validation
 * Apply different rules based on transaction amount.
 * ```typescript
 * {
 *   type: 'conditional',
 *   name: 'high_value_approval',
 *   when: 'order_total > 10000',
 *   message: 'High value order validation',
 *   then: {
 *     type: 'script',
 *     name: 'manager_approval_required',
 *     message: 'Orders over $10,000 require manager approval',
 *     condition: 'manager_approval_id = null'
 *   },
 *   otherwise: {
 *     type: 'script',
 *     name: 'standard_validation',
 *     message: 'Payment method is required',
 *     condition: 'payment_method = null'
 *   }
 * }
 * ```
 *
 * ### 4. Regional Compliance
 * Apply region-specific validation rules.
 * ```typescript
 * {
 *   type: 'conditional',
 *   name: 'regional_compliance',
 *   when: 'region = "EU"',
 *   message: 'EU compliance validation',
 *   then: {
 *     type: 'script',
 *     name: 'gdpr_consent',
 *     message: 'GDPR consent is required for EU customers',
 *     condition: 'gdpr_consent_given = false'
 *   },
 *   otherwise: {
 *     type: 'script',
 *     name: 'tos_acceptance',
 *     message: 'Terms of Service acceptance required',
 *     condition: 'tos_accepted = false'
 *   }
 * }
 * ```
 *
 * ### 5. Nested Conditional Validation
 * Create complex validation logic with nested conditions.
 * ```typescript
 * {
 *   type: 'conditional',
 *   name: 'country_state_validation',
 *   when: 'country = "US"',
 *   message: 'US-specific validation',
 *   then: {
 *     type: 'conditional',
 *     name: 'california_validation',
 *     when: 'state = "CA"',
 *     message: 'California-specific validation',
 *     then: {
 *       type: 'script',
 *       name: 'ca_tax_id_required',
 *       message: 'California requires a valid tax ID',
 *       condition: 'tax_id = null OR NOT(REGEX(tax_id, "^\\d{2}-\\d{7}$"))'
 *     }
 *   }
 * }
 * ```
 *
 * ### 6. Tax Validation for Taxable Items
 * Only validate tax fields when the item is taxable.
 * ```typescript
 * {
 *   type: 'conditional',
 *   name: 'tax_field_validation',
 *   when: 'is_taxable = true',
 *   message: 'Tax validation',
 *   then: {
 *     type: 'script',
 *     name: 'tax_code_required',
 *     message: 'Tax code is required for taxable items',
 *     condition: 'tax_code = null OR tax_code = ""'
 *   }
 * }
 * ```
 *
 * ### 7. Role-Based Validation
 * Apply validation based on user role.
 * ```typescript
 * {
 *   type: 'conditional',
 *   name: 'role_based_approval_limit',
 *   when: 'user_role = "manager"',
 *   message: 'Manager approval limits',
 *   then: {
 *     type: 'script',
 *     name: 'manager_limit',
 *     message: 'Managers can approve up to $50,000',
 *     condition: 'approval_amount > 50000'
 *   }
 * }
 * ```
 *
 * ## Salesforce Pattern Comparison
 *
 * Salesforce doesn't have explicit "conditional validation" rules but achieves similar
 * behavior using formula logic. ObjectStack makes this pattern explicit and composable.
 *
 * **Salesforce Approach:**
 * ```
 * IF(
 *   ISPICKVAL(Type, "Enterprise"),
 *   AND(Amount > 100000, ISBLANK(Approval__c)),
 *   FALSE
 * )
 * ```
 *
 * **ObjectStack Approach:**
 * ```typescript
 * {
 *   type: 'conditional',
 *   name: 'enterprise_high_value',
 *   when: 'type = "enterprise"',
 *   then: {
 *     type: 'cross_field',
 *     name: 'amount_approval',
 *     condition: 'amount > 100000 AND approval = null',
 *     fields: ['amount', 'approval']
 *   }
 * }
 * ```
 */
declare const ConditionalValidationSchema: z.ZodObject<{
    name: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    active: z.ZodDefault<z.ZodBoolean>;
    events: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        insert: "insert";
        update: "update";
        delete: "delete";
    }>>>;
    priority: z.ZodDefault<z.ZodNumber>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    severity: z.ZodDefault<z.ZodEnum<{
        error: "error";
        warning: "warning";
        info: "info";
    }>>;
    message: z.ZodString;
    type: z.ZodLiteral<"conditional">;
    when: z.ZodString;
    then: z.ZodType<BaseValidationRuleShape, unknown, z.core.$ZodTypeInternals<BaseValidationRuleShape, unknown>>;
    otherwise: z.ZodOptional<z.ZodType<BaseValidationRuleShape, unknown, z.core.$ZodTypeInternals<BaseValidationRuleShape, unknown>>>;
}, z.core.$strip>;
type ValidationRule = z.infer<typeof ValidationRuleSchema>;
type ScriptValidation = z.infer<typeof ScriptValidationSchema>;
type UniquenessValidation = z.infer<typeof UniquenessValidationSchema>;
type StateMachineValidation = z.infer<typeof StateMachineValidationSchema>;
type FormatValidation = z.infer<typeof FormatValidationSchema>;
type CrossFieldValidation = z.infer<typeof CrossFieldValidationSchema>;
type JSONValidation = z.infer<typeof JSONValidationSchema>;
type AsyncValidation = z.infer<typeof AsyncValidationSchema>;
type CustomValidation = z.infer<typeof CustomValidatorSchema>;
type ConditionalValidation = z.infer<typeof ConditionalValidationSchema>;

/**
 * API Operations Enum
 */
declare const ApiMethod: z.ZodEnum<{
    update: "update";
    delete: "delete";
    upsert: "upsert";
    search: "search";
    history: "history";
    get: "get";
    list: "list";
    create: "create";
    bulk: "bulk";
    aggregate: "aggregate";
    restore: "restore";
    purge: "purge";
    import: "import";
    export: "export";
}>;
type ApiMethod = z.infer<typeof ApiMethod>;
/**
 * Schema for database indexes.
 * Enhanced with additional index types and configuration options
 *
 * @example
 * {
 *   name: "idx_account_name",
 *   fields: ["name"],
 *   type: "btree",
 *   unique: true
 * }
 */
declare const IndexSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    fields: z.ZodArray<z.ZodString>;
    type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
        hash: "hash";
        btree: "btree";
        gin: "gin";
        gist: "gist";
        fulltext: "fulltext";
    }>>>;
    unique: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    partial: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Search Configuration
 * Defines how this object behaves in search results.
 *
 * @example
 * {
 *   fields: ["name", "email", "phone"],
 *   displayFields: ["name", "title"],
 *   filters: ["status = 'active'"]
 * }
 */
declare const SearchConfigSchema: z.ZodObject<{
    fields: z.ZodArray<z.ZodString>;
    displayFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
    filters: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
/**
 * Multi-Tenancy Configuration Schema
 * Configures tenant isolation strategy for SaaS applications
 *
 * @example Shared database with tenant_id isolation
 * {
 *   enabled: true,
 *   strategy: 'shared',
 *   tenantField: 'tenant_id',
 *   crossTenantAccess: false
 * }
 */
declare const TenancyConfigSchema: z.ZodObject<{
    enabled: z.ZodBoolean;
    strategy: z.ZodEnum<{
        shared: "shared";
        isolated: "isolated";
        hybrid: "hybrid";
    }>;
    tenantField: z.ZodDefault<z.ZodString>;
    crossTenantAccess: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
/**
 * Soft Delete Configuration Schema
 * Implements recycle bin / trash functionality
 *
 * @example Standard soft delete with cascade
 * {
 *   enabled: true,
 *   field: 'deleted_at',
 *   cascadeDelete: true
 * }
 */
declare const SoftDeleteConfigSchema: z.ZodObject<{
    enabled: z.ZodBoolean;
    field: z.ZodDefault<z.ZodString>;
    cascadeDelete: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
/**
 * Versioning Configuration Schema
 * Implements record versioning and history tracking
 *
 * @example Snapshot versioning with 90-day retention
 * {
 *   enabled: true,
 *   strategy: 'snapshot',
 *   retentionDays: 90,
 *   versionField: 'version'
 * }
 */
declare const VersioningConfigSchema: z.ZodObject<{
    enabled: z.ZodBoolean;
    strategy: z.ZodEnum<{
        snapshot: "snapshot";
        delta: "delta";
        "event-sourcing": "event-sourcing";
    }>;
    retentionDays: z.ZodOptional<z.ZodNumber>;
    versionField: z.ZodDefault<z.ZodString>;
}, z.core.$strip>;
/**
 * Partitioning Strategy Schema
 * Configures table partitioning for performance at scale
 *
 * @example Range partitioning by date (monthly)
 * {
 *   enabled: true,
 *   strategy: 'range',
 *   key: 'created_at',
 *   interval: '1 month'
 * }
 */
declare const PartitioningConfigSchema: z.ZodObject<{
    enabled: z.ZodBoolean;
    strategy: z.ZodEnum<{
        hash: "hash";
        range: "range";
        list: "list";
    }>;
    key: z.ZodString;
    interval: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Change Data Capture (CDC) Configuration Schema
 * Enables real-time data streaming to external systems
 *
 * @example Stream all changes to Kafka
 * {
 *   enabled: true,
 *   events: ['insert', 'update', 'delete'],
 *   destination: 'kafka://events.objectstack'
 * }
 */
declare const CDCConfigSchema: z.ZodObject<{
    enabled: z.ZodBoolean;
    events: z.ZodArray<z.ZodEnum<{
        insert: "insert";
        update: "update";
        delete: "delete";
    }>>;
    destination: z.ZodString;
}, z.core.$strip>;
/**
 * Base Object Schema Definition
 *
 * The Blueprint of a Business Object.
 * Represents a table, a collection, or a virtual entity.
 *
 * @example
 * ```yaml
 * name: project_task
 * label: Project Task
 * icon: task
 * fields:
 *   project:
 *     type: lookup
 *     reference: project
 *   status:
 *     type: select
 *     options: [todo, in_progress, done]
 * enable:
 *   trackHistory: true
 *   files: true
 * ```
 */
declare const ObjectSchemaBase: z.ZodObject<{
    name: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    pluralLabel: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    icon: z.ZodOptional<z.ZodString>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    isSystem: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    abstract: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    datasource: z.ZodDefault<z.ZodOptional<z.ZodString>>;
    tableName: z.ZodOptional<z.ZodString>;
    fields: z.ZodRecord<z.ZodString, z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        label: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<{
            number: "number";
            boolean: "boolean";
            date: "date";
            lookup: "lookup";
            file: "file";
            json: "json";
            text: "text";
            textarea: "textarea";
            email: "email";
            url: "url";
            phone: "phone";
            password: "password";
            markdown: "markdown";
            html: "html";
            richtext: "richtext";
            currency: "currency";
            percent: "percent";
            datetime: "datetime";
            time: "time";
            toggle: "toggle";
            select: "select";
            multiselect: "multiselect";
            radio: "radio";
            checkboxes: "checkboxes";
            master_detail: "master_detail";
            tree: "tree";
            image: "image";
            avatar: "avatar";
            video: "video";
            audio: "audio";
            formula: "formula";
            summary: "summary";
            autonumber: "autonumber";
            location: "location";
            address: "address";
            code: "code";
            color: "color";
            rating: "rating";
            slider: "slider";
            signature: "signature";
            qrcode: "qrcode";
            progress: "progress";
            tags: "tags";
            vector: "vector";
        }>;
        description: z.ZodOptional<z.ZodString>;
        format: z.ZodOptional<z.ZodString>;
        required: z.ZodDefault<z.ZodBoolean>;
        searchable: z.ZodDefault<z.ZodBoolean>;
        multiple: z.ZodDefault<z.ZodBoolean>;
        unique: z.ZodDefault<z.ZodBoolean>;
        defaultValue: z.ZodOptional<z.ZodUnknown>;
        maxLength: z.ZodOptional<z.ZodNumber>;
        minLength: z.ZodOptional<z.ZodNumber>;
        precision: z.ZodOptional<z.ZodNumber>;
        scale: z.ZodOptional<z.ZodNumber>;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        options: z.ZodOptional<z.ZodArray<z.ZodObject<{
            label: z.ZodString;
            value: z.ZodString;
            color: z.ZodOptional<z.ZodString>;
            default: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>>;
        reference: z.ZodOptional<z.ZodString>;
        referenceFilters: z.ZodOptional<z.ZodArray<z.ZodString>>;
        writeRequiresMasterRead: z.ZodOptional<z.ZodBoolean>;
        deleteBehavior: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            set_null: "set_null";
            cascade: "cascade";
            restrict: "restrict";
        }>>>;
        expression: z.ZodOptional<z.ZodString>;
        summaryOperations: z.ZodOptional<z.ZodObject<{
            object: z.ZodString;
            field: z.ZodString;
            function: z.ZodEnum<{
                count: "count";
                sum: "sum";
                avg: "avg";
                min: "min";
                max: "max";
            }>;
        }, z.core.$strip>>;
        language: z.ZodOptional<z.ZodString>;
        theme: z.ZodOptional<z.ZodString>;
        lineNumbers: z.ZodOptional<z.ZodBoolean>;
        maxRating: z.ZodOptional<z.ZodNumber>;
        allowHalf: z.ZodOptional<z.ZodBoolean>;
        displayMap: z.ZodOptional<z.ZodBoolean>;
        allowGeocoding: z.ZodOptional<z.ZodBoolean>;
        addressFormat: z.ZodOptional<z.ZodEnum<{
            us: "us";
            uk: "uk";
            international: "international";
        }>>;
        colorFormat: z.ZodOptional<z.ZodEnum<{
            hex: "hex";
            rgb: "rgb";
            rgba: "rgba";
            hsl: "hsl";
        }>>;
        allowAlpha: z.ZodOptional<z.ZodBoolean>;
        presetColors: z.ZodOptional<z.ZodArray<z.ZodString>>;
        step: z.ZodOptional<z.ZodNumber>;
        showValue: z.ZodOptional<z.ZodBoolean>;
        marks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        barcodeFormat: z.ZodOptional<z.ZodEnum<{
            qr: "qr";
            ean13: "ean13";
            ean8: "ean8";
            code128: "code128";
            code39: "code39";
            upca: "upca";
            upce: "upce";
        }>>;
        qrErrorCorrection: z.ZodOptional<z.ZodEnum<{
            L: "L";
            M: "M";
            Q: "Q";
            H: "H";
        }>>;
        displayValue: z.ZodOptional<z.ZodBoolean>;
        allowScanning: z.ZodOptional<z.ZodBoolean>;
        currencyConfig: z.ZodOptional<z.ZodObject<{
            precision: z.ZodDefault<z.ZodNumber>;
            currencyMode: z.ZodDefault<z.ZodEnum<{
                dynamic: "dynamic";
                fixed: "fixed";
            }>>;
            defaultCurrency: z.ZodDefault<z.ZodString>;
        }, z.core.$strip>>;
        vectorConfig: z.ZodOptional<z.ZodObject<{
            dimensions: z.ZodNumber;
            distanceMetric: z.ZodDefault<z.ZodEnum<{
                cosine: "cosine";
                euclidean: "euclidean";
                dotProduct: "dotProduct";
                manhattan: "manhattan";
            }>>;
            normalized: z.ZodDefault<z.ZodBoolean>;
            indexed: z.ZodDefault<z.ZodBoolean>;
            indexType: z.ZodOptional<z.ZodEnum<{
                hnsw: "hnsw";
                ivfflat: "ivfflat";
                flat: "flat";
            }>>;
        }, z.core.$strip>>;
        fileAttachmentConfig: z.ZodOptional<z.ZodObject<{
            minSize: z.ZodOptional<z.ZodNumber>;
            maxSize: z.ZodOptional<z.ZodNumber>;
            allowedTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            blockedTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            allowedMimeTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            blockedMimeTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            virusScan: z.ZodDefault<z.ZodBoolean>;
            virusScanProvider: z.ZodOptional<z.ZodEnum<{
                custom: "custom";
                clamav: "clamav";
                virustotal: "virustotal";
                metadefender: "metadefender";
            }>>;
            virusScanOnUpload: z.ZodDefault<z.ZodBoolean>;
            quarantineOnThreat: z.ZodDefault<z.ZodBoolean>;
            storageProvider: z.ZodOptional<z.ZodString>;
            storageBucket: z.ZodOptional<z.ZodString>;
            storagePrefix: z.ZodOptional<z.ZodString>;
            imageValidation: z.ZodOptional<z.ZodObject<{
                minWidth: z.ZodOptional<z.ZodNumber>;
                maxWidth: z.ZodOptional<z.ZodNumber>;
                minHeight: z.ZodOptional<z.ZodNumber>;
                maxHeight: z.ZodOptional<z.ZodNumber>;
                aspectRatio: z.ZodOptional<z.ZodString>;
                generateThumbnails: z.ZodDefault<z.ZodBoolean>;
                thumbnailSizes: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    name: z.ZodString;
                    width: z.ZodNumber;
                    height: z.ZodNumber;
                    crop: z.ZodDefault<z.ZodBoolean>;
                }, z.core.$strip>>>;
                preserveMetadata: z.ZodDefault<z.ZodBoolean>;
                autoRotate: z.ZodDefault<z.ZodBoolean>;
            }, z.core.$strip>>;
            allowMultiple: z.ZodDefault<z.ZodBoolean>;
            allowReplace: z.ZodDefault<z.ZodBoolean>;
            allowDelete: z.ZodDefault<z.ZodBoolean>;
            requireUpload: z.ZodDefault<z.ZodBoolean>;
            extractMetadata: z.ZodDefault<z.ZodBoolean>;
            extractText: z.ZodDefault<z.ZodBoolean>;
            versioningEnabled: z.ZodDefault<z.ZodBoolean>;
            maxVersions: z.ZodOptional<z.ZodNumber>;
            publicRead: z.ZodDefault<z.ZodBoolean>;
            presignedUrlExpiry: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>;
        encryptionConfig: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            algorithm: z.ZodDefault<z.ZodEnum<{
                "aes-256-gcm": "aes-256-gcm";
                "aes-256-cbc": "aes-256-cbc";
                "chacha20-poly1305": "chacha20-poly1305";
            }>>;
            keyManagement: z.ZodObject<{
                provider: z.ZodEnum<{
                    local: "local";
                    "aws-kms": "aws-kms";
                    "azure-key-vault": "azure-key-vault";
                    "gcp-kms": "gcp-kms";
                    "hashicorp-vault": "hashicorp-vault";
                }>;
                keyId: z.ZodOptional<z.ZodString>;
                rotationPolicy: z.ZodOptional<z.ZodObject<{
                    enabled: z.ZodDefault<z.ZodBoolean>;
                    frequencyDays: z.ZodDefault<z.ZodNumber>;
                    retainOldVersions: z.ZodDefault<z.ZodNumber>;
                    autoRotate: z.ZodDefault<z.ZodBoolean>;
                }, z.core.$strip>>;
            }, z.core.$strip>;
            scope: z.ZodEnum<{
                table: "table";
                record: "record";
                field: "field";
                database: "database";
            }>;
            deterministicEncryption: z.ZodDefault<z.ZodBoolean>;
            searchableEncryption: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>>;
        maskingRule: z.ZodOptional<z.ZodObject<{
            field: z.ZodString;
            strategy: z.ZodEnum<{
                redact: "redact";
                partial: "partial";
                hash: "hash";
                tokenize: "tokenize";
                randomize: "randomize";
                nullify: "nullify";
                substitute: "substitute";
            }>;
            pattern: z.ZodOptional<z.ZodString>;
            preserveFormat: z.ZodDefault<z.ZodBoolean>;
            preserveLength: z.ZodDefault<z.ZodBoolean>;
            roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
            exemptRoles: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strip>>;
        auditTrail: z.ZodDefault<z.ZodBoolean>;
        dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
        cached: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodBoolean;
            ttl: z.ZodNumber;
            invalidateOn: z.ZodArray<z.ZodString>;
        }, z.core.$strip>>;
        dataQuality: z.ZodOptional<z.ZodObject<{
            uniqueness: z.ZodDefault<z.ZodBoolean>;
            completeness: z.ZodDefault<z.ZodNumber>;
            accuracy: z.ZodOptional<z.ZodObject<{
                source: z.ZodString;
                threshold: z.ZodNumber;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        group: z.ZodOptional<z.ZodString>;
        conditionalRequired: z.ZodOptional<z.ZodString>;
        hidden: z.ZodDefault<z.ZodBoolean>;
        readonly: z.ZodDefault<z.ZodBoolean>;
        sortable: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        inlineHelpText: z.ZodOptional<z.ZodString>;
        trackFeedHistory: z.ZodOptional<z.ZodBoolean>;
        caseSensitive: z.ZodOptional<z.ZodBoolean>;
        autonumberFormat: z.ZodOptional<z.ZodString>;
        index: z.ZodDefault<z.ZodBoolean>;
        externalId: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        fields: z.ZodArray<z.ZodString>;
        type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            hash: "hash";
            btree: "btree";
            gin: "gin";
            gist: "gist";
            fulltext: "fulltext";
        }>>>;
        unique: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        partial: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    tenancy: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        strategy: z.ZodEnum<{
            shared: "shared";
            isolated: "isolated";
            hybrid: "hybrid";
        }>;
        tenantField: z.ZodDefault<z.ZodString>;
        crossTenantAccess: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    softDelete: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        field: z.ZodDefault<z.ZodString>;
        cascadeDelete: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    versioning: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        strategy: z.ZodEnum<{
            snapshot: "snapshot";
            delta: "delta";
            "event-sourcing": "event-sourcing";
        }>;
        retentionDays: z.ZodOptional<z.ZodNumber>;
        versionField: z.ZodDefault<z.ZodString>;
    }, z.core.$strip>>;
    partitioning: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        strategy: z.ZodEnum<{
            hash: "hash";
            range: "range";
            list: "list";
        }>;
        key: z.ZodString;
        interval: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    cdc: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        events: z.ZodArray<z.ZodEnum<{
            insert: "insert";
            update: "update";
            delete: "delete";
        }>>;
        destination: z.ZodString;
    }, z.core.$strip>>;
    validations: z.ZodOptional<z.ZodArray<z.ZodType<BaseValidationRuleShape, unknown, z.core.$ZodTypeInternals<BaseValidationRuleShape, unknown>>>>;
    stateMachines: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        id: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        contextSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        initial: z.ZodString;
        states: z.ZodRecord<z.ZodString, z.ZodType<StateNodeConfig, unknown, z.core.$ZodTypeInternals<StateNodeConfig, unknown>>>;
        on: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
            target: z.ZodOptional<z.ZodString>;
            cond: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                type: z.ZodString;
                params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>]>>;
            actions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                type: z.ZodString;
                params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>]>>>;
            description: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, z.ZodArray<z.ZodObject<{
            target: z.ZodOptional<z.ZodString>;
            cond: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                type: z.ZodString;
                params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>]>>;
            actions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                type: z.ZodString;
                params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>]>>>;
            description: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>]>>>;
    }, z.core.$strip>>>;
    displayNameField: z.ZodOptional<z.ZodString>;
    recordName: z.ZodOptional<z.ZodObject<{
        type: z.ZodEnum<{
            text: "text";
            autonumber: "autonumber";
        }>;
        displayFormat: z.ZodOptional<z.ZodString>;
        startNumber: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>;
    titleFormat: z.ZodOptional<z.ZodString>;
    compactLayout: z.ZodOptional<z.ZodArray<z.ZodString>>;
    search: z.ZodOptional<z.ZodObject<{
        fields: z.ZodArray<z.ZodString>;
        displayFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
        filters: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
    enable: z.ZodOptional<z.ZodObject<{
        trackHistory: z.ZodDefault<z.ZodBoolean>;
        searchable: z.ZodDefault<z.ZodBoolean>;
        apiEnabled: z.ZodDefault<z.ZodBoolean>;
        apiMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
            update: "update";
            delete: "delete";
            upsert: "upsert";
            search: "search";
            history: "history";
            get: "get";
            list: "list";
            create: "create";
            bulk: "bulk";
            aggregate: "aggregate";
            restore: "restore";
            purge: "purge";
            import: "import";
            export: "export";
        }>>>;
        files: z.ZodDefault<z.ZodBoolean>;
        feeds: z.ZodDefault<z.ZodBoolean>;
        activities: z.ZodDefault<z.ZodBoolean>;
        trash: z.ZodDefault<z.ZodBoolean>;
        mru: z.ZodDefault<z.ZodBoolean>;
        clone: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    recordTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
    sharingModel: z.ZodOptional<z.ZodEnum<{
        full: "full";
        private: "private";
        read: "read";
        read_write: "read_write";
    }>>;
    keyPrefix: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Enhanced ObjectSchema with Factory
 */
declare const ObjectSchema: z.ZodObject<{
    name: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    pluralLabel: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    icon: z.ZodOptional<z.ZodString>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    isSystem: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    abstract: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    datasource: z.ZodDefault<z.ZodOptional<z.ZodString>>;
    tableName: z.ZodOptional<z.ZodString>;
    fields: z.ZodRecord<z.ZodString, z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        label: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<{
            number: "number";
            boolean: "boolean";
            date: "date";
            lookup: "lookup";
            file: "file";
            json: "json";
            text: "text";
            textarea: "textarea";
            email: "email";
            url: "url";
            phone: "phone";
            password: "password";
            markdown: "markdown";
            html: "html";
            richtext: "richtext";
            currency: "currency";
            percent: "percent";
            datetime: "datetime";
            time: "time";
            toggle: "toggle";
            select: "select";
            multiselect: "multiselect";
            radio: "radio";
            checkboxes: "checkboxes";
            master_detail: "master_detail";
            tree: "tree";
            image: "image";
            avatar: "avatar";
            video: "video";
            audio: "audio";
            formula: "formula";
            summary: "summary";
            autonumber: "autonumber";
            location: "location";
            address: "address";
            code: "code";
            color: "color";
            rating: "rating";
            slider: "slider";
            signature: "signature";
            qrcode: "qrcode";
            progress: "progress";
            tags: "tags";
            vector: "vector";
        }>;
        description: z.ZodOptional<z.ZodString>;
        format: z.ZodOptional<z.ZodString>;
        required: z.ZodDefault<z.ZodBoolean>;
        searchable: z.ZodDefault<z.ZodBoolean>;
        multiple: z.ZodDefault<z.ZodBoolean>;
        unique: z.ZodDefault<z.ZodBoolean>;
        defaultValue: z.ZodOptional<z.ZodUnknown>;
        maxLength: z.ZodOptional<z.ZodNumber>;
        minLength: z.ZodOptional<z.ZodNumber>;
        precision: z.ZodOptional<z.ZodNumber>;
        scale: z.ZodOptional<z.ZodNumber>;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        options: z.ZodOptional<z.ZodArray<z.ZodObject<{
            label: z.ZodString;
            value: z.ZodString;
            color: z.ZodOptional<z.ZodString>;
            default: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>>;
        reference: z.ZodOptional<z.ZodString>;
        referenceFilters: z.ZodOptional<z.ZodArray<z.ZodString>>;
        writeRequiresMasterRead: z.ZodOptional<z.ZodBoolean>;
        deleteBehavior: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            set_null: "set_null";
            cascade: "cascade";
            restrict: "restrict";
        }>>>;
        expression: z.ZodOptional<z.ZodString>;
        summaryOperations: z.ZodOptional<z.ZodObject<{
            object: z.ZodString;
            field: z.ZodString;
            function: z.ZodEnum<{
                count: "count";
                sum: "sum";
                avg: "avg";
                min: "min";
                max: "max";
            }>;
        }, z.core.$strip>>;
        language: z.ZodOptional<z.ZodString>;
        theme: z.ZodOptional<z.ZodString>;
        lineNumbers: z.ZodOptional<z.ZodBoolean>;
        maxRating: z.ZodOptional<z.ZodNumber>;
        allowHalf: z.ZodOptional<z.ZodBoolean>;
        displayMap: z.ZodOptional<z.ZodBoolean>;
        allowGeocoding: z.ZodOptional<z.ZodBoolean>;
        addressFormat: z.ZodOptional<z.ZodEnum<{
            us: "us";
            uk: "uk";
            international: "international";
        }>>;
        colorFormat: z.ZodOptional<z.ZodEnum<{
            hex: "hex";
            rgb: "rgb";
            rgba: "rgba";
            hsl: "hsl";
        }>>;
        allowAlpha: z.ZodOptional<z.ZodBoolean>;
        presetColors: z.ZodOptional<z.ZodArray<z.ZodString>>;
        step: z.ZodOptional<z.ZodNumber>;
        showValue: z.ZodOptional<z.ZodBoolean>;
        marks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        barcodeFormat: z.ZodOptional<z.ZodEnum<{
            qr: "qr";
            ean13: "ean13";
            ean8: "ean8";
            code128: "code128";
            code39: "code39";
            upca: "upca";
            upce: "upce";
        }>>;
        qrErrorCorrection: z.ZodOptional<z.ZodEnum<{
            L: "L";
            M: "M";
            Q: "Q";
            H: "H";
        }>>;
        displayValue: z.ZodOptional<z.ZodBoolean>;
        allowScanning: z.ZodOptional<z.ZodBoolean>;
        currencyConfig: z.ZodOptional<z.ZodObject<{
            precision: z.ZodDefault<z.ZodNumber>;
            currencyMode: z.ZodDefault<z.ZodEnum<{
                dynamic: "dynamic";
                fixed: "fixed";
            }>>;
            defaultCurrency: z.ZodDefault<z.ZodString>;
        }, z.core.$strip>>;
        vectorConfig: z.ZodOptional<z.ZodObject<{
            dimensions: z.ZodNumber;
            distanceMetric: z.ZodDefault<z.ZodEnum<{
                cosine: "cosine";
                euclidean: "euclidean";
                dotProduct: "dotProduct";
                manhattan: "manhattan";
            }>>;
            normalized: z.ZodDefault<z.ZodBoolean>;
            indexed: z.ZodDefault<z.ZodBoolean>;
            indexType: z.ZodOptional<z.ZodEnum<{
                hnsw: "hnsw";
                ivfflat: "ivfflat";
                flat: "flat";
            }>>;
        }, z.core.$strip>>;
        fileAttachmentConfig: z.ZodOptional<z.ZodObject<{
            minSize: z.ZodOptional<z.ZodNumber>;
            maxSize: z.ZodOptional<z.ZodNumber>;
            allowedTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            blockedTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            allowedMimeTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            blockedMimeTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            virusScan: z.ZodDefault<z.ZodBoolean>;
            virusScanProvider: z.ZodOptional<z.ZodEnum<{
                custom: "custom";
                clamav: "clamav";
                virustotal: "virustotal";
                metadefender: "metadefender";
            }>>;
            virusScanOnUpload: z.ZodDefault<z.ZodBoolean>;
            quarantineOnThreat: z.ZodDefault<z.ZodBoolean>;
            storageProvider: z.ZodOptional<z.ZodString>;
            storageBucket: z.ZodOptional<z.ZodString>;
            storagePrefix: z.ZodOptional<z.ZodString>;
            imageValidation: z.ZodOptional<z.ZodObject<{
                minWidth: z.ZodOptional<z.ZodNumber>;
                maxWidth: z.ZodOptional<z.ZodNumber>;
                minHeight: z.ZodOptional<z.ZodNumber>;
                maxHeight: z.ZodOptional<z.ZodNumber>;
                aspectRatio: z.ZodOptional<z.ZodString>;
                generateThumbnails: z.ZodDefault<z.ZodBoolean>;
                thumbnailSizes: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    name: z.ZodString;
                    width: z.ZodNumber;
                    height: z.ZodNumber;
                    crop: z.ZodDefault<z.ZodBoolean>;
                }, z.core.$strip>>>;
                preserveMetadata: z.ZodDefault<z.ZodBoolean>;
                autoRotate: z.ZodDefault<z.ZodBoolean>;
            }, z.core.$strip>>;
            allowMultiple: z.ZodDefault<z.ZodBoolean>;
            allowReplace: z.ZodDefault<z.ZodBoolean>;
            allowDelete: z.ZodDefault<z.ZodBoolean>;
            requireUpload: z.ZodDefault<z.ZodBoolean>;
            extractMetadata: z.ZodDefault<z.ZodBoolean>;
            extractText: z.ZodDefault<z.ZodBoolean>;
            versioningEnabled: z.ZodDefault<z.ZodBoolean>;
            maxVersions: z.ZodOptional<z.ZodNumber>;
            publicRead: z.ZodDefault<z.ZodBoolean>;
            presignedUrlExpiry: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>;
        encryptionConfig: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            algorithm: z.ZodDefault<z.ZodEnum<{
                "aes-256-gcm": "aes-256-gcm";
                "aes-256-cbc": "aes-256-cbc";
                "chacha20-poly1305": "chacha20-poly1305";
            }>>;
            keyManagement: z.ZodObject<{
                provider: z.ZodEnum<{
                    local: "local";
                    "aws-kms": "aws-kms";
                    "azure-key-vault": "azure-key-vault";
                    "gcp-kms": "gcp-kms";
                    "hashicorp-vault": "hashicorp-vault";
                }>;
                keyId: z.ZodOptional<z.ZodString>;
                rotationPolicy: z.ZodOptional<z.ZodObject<{
                    enabled: z.ZodDefault<z.ZodBoolean>;
                    frequencyDays: z.ZodDefault<z.ZodNumber>;
                    retainOldVersions: z.ZodDefault<z.ZodNumber>;
                    autoRotate: z.ZodDefault<z.ZodBoolean>;
                }, z.core.$strip>>;
            }, z.core.$strip>;
            scope: z.ZodEnum<{
                table: "table";
                record: "record";
                field: "field";
                database: "database";
            }>;
            deterministicEncryption: z.ZodDefault<z.ZodBoolean>;
            searchableEncryption: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>>;
        maskingRule: z.ZodOptional<z.ZodObject<{
            field: z.ZodString;
            strategy: z.ZodEnum<{
                redact: "redact";
                partial: "partial";
                hash: "hash";
                tokenize: "tokenize";
                randomize: "randomize";
                nullify: "nullify";
                substitute: "substitute";
            }>;
            pattern: z.ZodOptional<z.ZodString>;
            preserveFormat: z.ZodDefault<z.ZodBoolean>;
            preserveLength: z.ZodDefault<z.ZodBoolean>;
            roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
            exemptRoles: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strip>>;
        auditTrail: z.ZodDefault<z.ZodBoolean>;
        dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
        cached: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodBoolean;
            ttl: z.ZodNumber;
            invalidateOn: z.ZodArray<z.ZodString>;
        }, z.core.$strip>>;
        dataQuality: z.ZodOptional<z.ZodObject<{
            uniqueness: z.ZodDefault<z.ZodBoolean>;
            completeness: z.ZodDefault<z.ZodNumber>;
            accuracy: z.ZodOptional<z.ZodObject<{
                source: z.ZodString;
                threshold: z.ZodNumber;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        group: z.ZodOptional<z.ZodString>;
        conditionalRequired: z.ZodOptional<z.ZodString>;
        hidden: z.ZodDefault<z.ZodBoolean>;
        readonly: z.ZodDefault<z.ZodBoolean>;
        sortable: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        inlineHelpText: z.ZodOptional<z.ZodString>;
        trackFeedHistory: z.ZodOptional<z.ZodBoolean>;
        caseSensitive: z.ZodOptional<z.ZodBoolean>;
        autonumberFormat: z.ZodOptional<z.ZodString>;
        index: z.ZodDefault<z.ZodBoolean>;
        externalId: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        fields: z.ZodArray<z.ZodString>;
        type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            hash: "hash";
            btree: "btree";
            gin: "gin";
            gist: "gist";
            fulltext: "fulltext";
        }>>>;
        unique: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        partial: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    tenancy: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        strategy: z.ZodEnum<{
            shared: "shared";
            isolated: "isolated";
            hybrid: "hybrid";
        }>;
        tenantField: z.ZodDefault<z.ZodString>;
        crossTenantAccess: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    softDelete: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        field: z.ZodDefault<z.ZodString>;
        cascadeDelete: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    versioning: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        strategy: z.ZodEnum<{
            snapshot: "snapshot";
            delta: "delta";
            "event-sourcing": "event-sourcing";
        }>;
        retentionDays: z.ZodOptional<z.ZodNumber>;
        versionField: z.ZodDefault<z.ZodString>;
    }, z.core.$strip>>;
    partitioning: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        strategy: z.ZodEnum<{
            hash: "hash";
            range: "range";
            list: "list";
        }>;
        key: z.ZodString;
        interval: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    cdc: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
        events: z.ZodArray<z.ZodEnum<{
            insert: "insert";
            update: "update";
            delete: "delete";
        }>>;
        destination: z.ZodString;
    }, z.core.$strip>>;
    validations: z.ZodOptional<z.ZodArray<z.ZodType<BaseValidationRuleShape, unknown, z.core.$ZodTypeInternals<BaseValidationRuleShape, unknown>>>>;
    stateMachines: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        id: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        contextSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        initial: z.ZodString;
        states: z.ZodRecord<z.ZodString, z.ZodType<StateNodeConfig, unknown, z.core.$ZodTypeInternals<StateNodeConfig, unknown>>>;
        on: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
            target: z.ZodOptional<z.ZodString>;
            cond: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                type: z.ZodString;
                params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>]>>;
            actions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                type: z.ZodString;
                params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>]>>>;
            description: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, z.ZodArray<z.ZodObject<{
            target: z.ZodOptional<z.ZodString>;
            cond: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                type: z.ZodString;
                params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>]>>;
            actions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                type: z.ZodString;
                params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>]>>>;
            description: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>]>>>;
    }, z.core.$strip>>>;
    displayNameField: z.ZodOptional<z.ZodString>;
    recordName: z.ZodOptional<z.ZodObject<{
        type: z.ZodEnum<{
            text: "text";
            autonumber: "autonumber";
        }>;
        displayFormat: z.ZodOptional<z.ZodString>;
        startNumber: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>;
    titleFormat: z.ZodOptional<z.ZodString>;
    compactLayout: z.ZodOptional<z.ZodArray<z.ZodString>>;
    search: z.ZodOptional<z.ZodObject<{
        fields: z.ZodArray<z.ZodString>;
        displayFields: z.ZodOptional<z.ZodArray<z.ZodString>>;
        filters: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
    enable: z.ZodOptional<z.ZodObject<{
        trackHistory: z.ZodDefault<z.ZodBoolean>;
        searchable: z.ZodDefault<z.ZodBoolean>;
        apiEnabled: z.ZodDefault<z.ZodBoolean>;
        apiMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
            update: "update";
            delete: "delete";
            upsert: "upsert";
            search: "search";
            history: "history";
            get: "get";
            list: "list";
            create: "create";
            bulk: "bulk";
            aggregate: "aggregate";
            restore: "restore";
            purge: "purge";
            import: "import";
            export: "export";
        }>>>;
        files: z.ZodDefault<z.ZodBoolean>;
        feeds: z.ZodDefault<z.ZodBoolean>;
        activities: z.ZodDefault<z.ZodBoolean>;
        trash: z.ZodDefault<z.ZodBoolean>;
        mru: z.ZodDefault<z.ZodBoolean>;
        clone: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>;
    recordTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
    sharingModel: z.ZodOptional<z.ZodEnum<{
        full: "full";
        private: "private";
        read: "read";
        read_write: "read_write";
    }>>;
    keyPrefix: z.ZodOptional<z.ZodString>;
}, z.core.$strip> & {
    /**
     * Type-safe factory for creating business object definitions.
     *
     * Enhancements over raw schema:
     * - **Auto-label**: Generates `label` from `name` if not provided (snake_case → Title Case).
     * - **Validation**: Runs Zod `.parse()` to validate the config at creation time.
     *
     * @example
     * ```ts
     * const Task = ObjectSchema.create({
     *   name: 'project_task',
     *   // label auto-generated as 'Project Task'
     *   fields: {
     *     subject: { type: 'text', label: 'Subject', required: true },
     *   },
     * });
     * ```
     */
    create: (config: z.input<typeof ObjectSchemaBase>) => ServiceObject;
};
type ServiceObject = z.infer<typeof ObjectSchemaBase>;
type ServiceObjectInput = z.input<typeof ObjectSchemaBase>;
/**
 * Capability Flags
 * Defines what system features are enabled for this object.
 *
 * Optimized based on industry standards (Salesforce, ServiceNow):
 * - Added `activities` (Tasks/Events)
 * - Added `mru` (Recent Items)
 * - Added `feeds` (Social/Chatter)
 * - Grouped API permissions
 *
 * @example
 * {
 *   trackHistory: true,
 *   searchable: true,
 *   apiEnabled: true,
 *   files: true
 * }
 */
declare const ObjectCapabilities: z.ZodObject<{
    trackHistory: z.ZodDefault<z.ZodBoolean>;
    searchable: z.ZodDefault<z.ZodBoolean>;
    apiEnabled: z.ZodDefault<z.ZodBoolean>;
    apiMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
        update: "update";
        delete: "delete";
        upsert: "upsert";
        search: "search";
        history: "history";
        get: "get";
        list: "list";
        create: "create";
        bulk: "bulk";
        aggregate: "aggregate";
        restore: "restore";
        purge: "purge";
        import: "import";
        export: "export";
    }>>>;
    files: z.ZodDefault<z.ZodBoolean>;
    feeds: z.ZodDefault<z.ZodBoolean>;
    activities: z.ZodDefault<z.ZodBoolean>;
    trash: z.ZodDefault<z.ZodBoolean>;
    mru: z.ZodDefault<z.ZodBoolean>;
    clone: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
type ObjectCapabilities = z.infer<typeof ObjectCapabilities>;
type ObjectIndex = z.infer<typeof IndexSchema>;
type TenancyConfig = z.infer<typeof TenancyConfigSchema>;
type SoftDeleteConfig = z.infer<typeof SoftDeleteConfigSchema>;
type VersioningConfig = z.infer<typeof VersioningConfigSchema>;
type PartitioningConfig = z.infer<typeof PartitioningConfigSchema>;
type CDCConfig = z.infer<typeof CDCConfigSchema>;
/**
 * How a package relates to an object it references.
 *
 * - `own`: This package is the original author/owner of the object.
 *   Only one package may own a given object name. The owner defines
 *   the base schema (table name, primary key, core fields).
 *
 * - `extend`: This package adds fields, views, or actions to an
 *   existing object owned by another package. Multiple packages
 *   may extend the same object. Extensions are merged at boot time.
 *
 * Follows Salesforce/ServiceNow patterns:
 *   object name = database table name, globally unique, no namespace prefix.
 */
declare const ObjectOwnershipEnum: z.ZodEnum<{
    own: "own";
    extend: "extend";
}>;
type ObjectOwnership = z.infer<typeof ObjectOwnershipEnum>;
/**
 * Object Extension Entry — used in `objectExtensions` array.
 * Declares fields/config to merge into an existing object owned by another package.
 *
 * @example
 * ```ts
 * objectExtensions: [{
 *   extend: 'contact',               // target object FQN
 *   fields: { sales_stage: Field.select([...]) },
 * }]
 * ```
 */
declare const ObjectExtensionSchema: z.ZodObject<{
    extend: z.ZodString;
    fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        label: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<{
            number: "number";
            boolean: "boolean";
            date: "date";
            lookup: "lookup";
            file: "file";
            json: "json";
            text: "text";
            textarea: "textarea";
            email: "email";
            url: "url";
            phone: "phone";
            password: "password";
            markdown: "markdown";
            html: "html";
            richtext: "richtext";
            currency: "currency";
            percent: "percent";
            datetime: "datetime";
            time: "time";
            toggle: "toggle";
            select: "select";
            multiselect: "multiselect";
            radio: "radio";
            checkboxes: "checkboxes";
            master_detail: "master_detail";
            tree: "tree";
            image: "image";
            avatar: "avatar";
            video: "video";
            audio: "audio";
            formula: "formula";
            summary: "summary";
            autonumber: "autonumber";
            location: "location";
            address: "address";
            code: "code";
            color: "color";
            rating: "rating";
            slider: "slider";
            signature: "signature";
            qrcode: "qrcode";
            progress: "progress";
            tags: "tags";
            vector: "vector";
        }>;
        description: z.ZodOptional<z.ZodString>;
        format: z.ZodOptional<z.ZodString>;
        required: z.ZodDefault<z.ZodBoolean>;
        searchable: z.ZodDefault<z.ZodBoolean>;
        multiple: z.ZodDefault<z.ZodBoolean>;
        unique: z.ZodDefault<z.ZodBoolean>;
        defaultValue: z.ZodOptional<z.ZodUnknown>;
        maxLength: z.ZodOptional<z.ZodNumber>;
        minLength: z.ZodOptional<z.ZodNumber>;
        precision: z.ZodOptional<z.ZodNumber>;
        scale: z.ZodOptional<z.ZodNumber>;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        options: z.ZodOptional<z.ZodArray<z.ZodObject<{
            label: z.ZodString;
            value: z.ZodString;
            color: z.ZodOptional<z.ZodString>;
            default: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>>;
        reference: z.ZodOptional<z.ZodString>;
        referenceFilters: z.ZodOptional<z.ZodArray<z.ZodString>>;
        writeRequiresMasterRead: z.ZodOptional<z.ZodBoolean>;
        deleteBehavior: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            set_null: "set_null";
            cascade: "cascade";
            restrict: "restrict";
        }>>>;
        expression: z.ZodOptional<z.ZodString>;
        summaryOperations: z.ZodOptional<z.ZodObject<{
            object: z.ZodString;
            field: z.ZodString;
            function: z.ZodEnum<{
                count: "count";
                sum: "sum";
                avg: "avg";
                min: "min";
                max: "max";
            }>;
        }, z.core.$strip>>;
        language: z.ZodOptional<z.ZodString>;
        theme: z.ZodOptional<z.ZodString>;
        lineNumbers: z.ZodOptional<z.ZodBoolean>;
        maxRating: z.ZodOptional<z.ZodNumber>;
        allowHalf: z.ZodOptional<z.ZodBoolean>;
        displayMap: z.ZodOptional<z.ZodBoolean>;
        allowGeocoding: z.ZodOptional<z.ZodBoolean>;
        addressFormat: z.ZodOptional<z.ZodEnum<{
            us: "us";
            uk: "uk";
            international: "international";
        }>>;
        colorFormat: z.ZodOptional<z.ZodEnum<{
            hex: "hex";
            rgb: "rgb";
            rgba: "rgba";
            hsl: "hsl";
        }>>;
        allowAlpha: z.ZodOptional<z.ZodBoolean>;
        presetColors: z.ZodOptional<z.ZodArray<z.ZodString>>;
        step: z.ZodOptional<z.ZodNumber>;
        showValue: z.ZodOptional<z.ZodBoolean>;
        marks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        barcodeFormat: z.ZodOptional<z.ZodEnum<{
            qr: "qr";
            ean13: "ean13";
            ean8: "ean8";
            code128: "code128";
            code39: "code39";
            upca: "upca";
            upce: "upce";
        }>>;
        qrErrorCorrection: z.ZodOptional<z.ZodEnum<{
            L: "L";
            M: "M";
            Q: "Q";
            H: "H";
        }>>;
        displayValue: z.ZodOptional<z.ZodBoolean>;
        allowScanning: z.ZodOptional<z.ZodBoolean>;
        currencyConfig: z.ZodOptional<z.ZodObject<{
            precision: z.ZodDefault<z.ZodNumber>;
            currencyMode: z.ZodDefault<z.ZodEnum<{
                dynamic: "dynamic";
                fixed: "fixed";
            }>>;
            defaultCurrency: z.ZodDefault<z.ZodString>;
        }, z.core.$strip>>;
        vectorConfig: z.ZodOptional<z.ZodObject<{
            dimensions: z.ZodNumber;
            distanceMetric: z.ZodDefault<z.ZodEnum<{
                cosine: "cosine";
                euclidean: "euclidean";
                dotProduct: "dotProduct";
                manhattan: "manhattan";
            }>>;
            normalized: z.ZodDefault<z.ZodBoolean>;
            indexed: z.ZodDefault<z.ZodBoolean>;
            indexType: z.ZodOptional<z.ZodEnum<{
                hnsw: "hnsw";
                ivfflat: "ivfflat";
                flat: "flat";
            }>>;
        }, z.core.$strip>>;
        fileAttachmentConfig: z.ZodOptional<z.ZodObject<{
            minSize: z.ZodOptional<z.ZodNumber>;
            maxSize: z.ZodOptional<z.ZodNumber>;
            allowedTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            blockedTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            allowedMimeTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            blockedMimeTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
            virusScan: z.ZodDefault<z.ZodBoolean>;
            virusScanProvider: z.ZodOptional<z.ZodEnum<{
                custom: "custom";
                clamav: "clamav";
                virustotal: "virustotal";
                metadefender: "metadefender";
            }>>;
            virusScanOnUpload: z.ZodDefault<z.ZodBoolean>;
            quarantineOnThreat: z.ZodDefault<z.ZodBoolean>;
            storageProvider: z.ZodOptional<z.ZodString>;
            storageBucket: z.ZodOptional<z.ZodString>;
            storagePrefix: z.ZodOptional<z.ZodString>;
            imageValidation: z.ZodOptional<z.ZodObject<{
                minWidth: z.ZodOptional<z.ZodNumber>;
                maxWidth: z.ZodOptional<z.ZodNumber>;
                minHeight: z.ZodOptional<z.ZodNumber>;
                maxHeight: z.ZodOptional<z.ZodNumber>;
                aspectRatio: z.ZodOptional<z.ZodString>;
                generateThumbnails: z.ZodDefault<z.ZodBoolean>;
                thumbnailSizes: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    name: z.ZodString;
                    width: z.ZodNumber;
                    height: z.ZodNumber;
                    crop: z.ZodDefault<z.ZodBoolean>;
                }, z.core.$strip>>>;
                preserveMetadata: z.ZodDefault<z.ZodBoolean>;
                autoRotate: z.ZodDefault<z.ZodBoolean>;
            }, z.core.$strip>>;
            allowMultiple: z.ZodDefault<z.ZodBoolean>;
            allowReplace: z.ZodDefault<z.ZodBoolean>;
            allowDelete: z.ZodDefault<z.ZodBoolean>;
            requireUpload: z.ZodDefault<z.ZodBoolean>;
            extractMetadata: z.ZodDefault<z.ZodBoolean>;
            extractText: z.ZodDefault<z.ZodBoolean>;
            versioningEnabled: z.ZodDefault<z.ZodBoolean>;
            maxVersions: z.ZodOptional<z.ZodNumber>;
            publicRead: z.ZodDefault<z.ZodBoolean>;
            presignedUrlExpiry: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>;
        encryptionConfig: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            algorithm: z.ZodDefault<z.ZodEnum<{
                "aes-256-gcm": "aes-256-gcm";
                "aes-256-cbc": "aes-256-cbc";
                "chacha20-poly1305": "chacha20-poly1305";
            }>>;
            keyManagement: z.ZodObject<{
                provider: z.ZodEnum<{
                    local: "local";
                    "aws-kms": "aws-kms";
                    "azure-key-vault": "azure-key-vault";
                    "gcp-kms": "gcp-kms";
                    "hashicorp-vault": "hashicorp-vault";
                }>;
                keyId: z.ZodOptional<z.ZodString>;
                rotationPolicy: z.ZodOptional<z.ZodObject<{
                    enabled: z.ZodDefault<z.ZodBoolean>;
                    frequencyDays: z.ZodDefault<z.ZodNumber>;
                    retainOldVersions: z.ZodDefault<z.ZodNumber>;
                    autoRotate: z.ZodDefault<z.ZodBoolean>;
                }, z.core.$strip>>;
            }, z.core.$strip>;
            scope: z.ZodEnum<{
                table: "table";
                record: "record";
                field: "field";
                database: "database";
            }>;
            deterministicEncryption: z.ZodDefault<z.ZodBoolean>;
            searchableEncryption: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>>;
        maskingRule: z.ZodOptional<z.ZodObject<{
            field: z.ZodString;
            strategy: z.ZodEnum<{
                redact: "redact";
                partial: "partial";
                hash: "hash";
                tokenize: "tokenize";
                randomize: "randomize";
                nullify: "nullify";
                substitute: "substitute";
            }>;
            pattern: z.ZodOptional<z.ZodString>;
            preserveFormat: z.ZodDefault<z.ZodBoolean>;
            preserveLength: z.ZodDefault<z.ZodBoolean>;
            roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
            exemptRoles: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strip>>;
        auditTrail: z.ZodDefault<z.ZodBoolean>;
        dependencies: z.ZodOptional<z.ZodArray<z.ZodString>>;
        cached: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodBoolean;
            ttl: z.ZodNumber;
            invalidateOn: z.ZodArray<z.ZodString>;
        }, z.core.$strip>>;
        dataQuality: z.ZodOptional<z.ZodObject<{
            uniqueness: z.ZodDefault<z.ZodBoolean>;
            completeness: z.ZodDefault<z.ZodNumber>;
            accuracy: z.ZodOptional<z.ZodObject<{
                source: z.ZodString;
                threshold: z.ZodNumber;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        group: z.ZodOptional<z.ZodString>;
        conditionalRequired: z.ZodOptional<z.ZodString>;
        hidden: z.ZodDefault<z.ZodBoolean>;
        readonly: z.ZodDefault<z.ZodBoolean>;
        sortable: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        inlineHelpText: z.ZodOptional<z.ZodString>;
        trackFeedHistory: z.ZodOptional<z.ZodBoolean>;
        caseSensitive: z.ZodOptional<z.ZodBoolean>;
        autonumberFormat: z.ZodOptional<z.ZodString>;
        index: z.ZodDefault<z.ZodBoolean>;
        externalId: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>>;
    label: z.ZodOptional<z.ZodString>;
    pluralLabel: z.ZodOptional<z.ZodString>;
    description: z.ZodOptional<z.ZodString>;
    validations: z.ZodOptional<z.ZodArray<z.ZodType<BaseValidationRuleShape, unknown, z.core.$ZodTypeInternals<BaseValidationRuleShape, unknown>>>>;
    indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        fields: z.ZodArray<z.ZodString>;
        type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            hash: "hash";
            btree: "btree";
            gin: "gin";
            gist: "gist";
            fulltext: "fulltext";
        }>>>;
        unique: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        partial: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    priority: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
type ObjectExtension = z.infer<typeof ObjectExtensionSchema>;

export { ApiMethod as A, type BaseValidationRuleShape as B, type CDCConfig as C, TenancyConfigSchema as D, UniquenessValidationSchema as E, type FormatValidation as F, ValidationRuleSchema as G, type VersioningConfig as H, IndexSchema as I, type JSONValidation as J, VersioningConfigSchema as K, ObjectSchema as O, type PartitioningConfig as P, type ServiceObject as S, type TenancyConfig as T, type UniquenessValidation as U, type ValidationRule as V, type AsyncValidation as a, AsyncValidationSchema as b, CDCConfigSchema as c, type ConditionalValidation as d, ConditionalValidationSchema as e, type CrossFieldValidation as f, CrossFieldValidationSchema as g, type CustomValidation as h, CustomValidatorSchema as i, FormatValidationSchema as j, JSONValidationSchema as k, ObjectCapabilities as l, type ObjectExtension as m, ObjectExtensionSchema as n, type ObjectIndex as o, type ObjectOwnership as p, ObjectOwnershipEnum as q, PartitioningConfigSchema as r, type ScriptValidation as s, ScriptValidationSchema as t, SearchConfigSchema as u, type ServiceObjectInput as v, type SoftDeleteConfig as w, SoftDeleteConfigSchema as x, type StateMachineValidation as y, StateMachineValidationSchema as z };
