import { Alepha, KIND, Primitive, Static, TNull, TObject, TOptional, TSchema, TUnion } from "alepha";
import { Page } from "alepha/orm";
import { ServerRequest } from "alepha/server";
import { BuildExtraConfigColumns, SQL } from "drizzle-orm";
import { PgColumnBuilderBase, PgSequenceOptions, PgTableExtraConfigValue, UpdateDeleteAction } from "drizzle-orm/pg-core";
import "drizzle-orm/pg-core/foreign-keys";
import "alepha/datetime";
import "drizzle-orm/pg-core/session";
import "alepha/crypto";
import "drizzle-kit/api";
import "drizzle-orm/d1";
import "drizzle-orm/sqlite-core";
//#region ../../src/api/audits/entities/audits.d.ts
/**
 * Audit severity levels for categorizing events.
 */
declare const auditSeveritySchema: import("zod").ZodDefault<import("zod").ZodEnum<{
  critical: "critical";
  info: "info";
  warning: "warning";
}>>;
type AuditSeverity = Static<typeof auditSeveritySchema>;
/**
 * Audit log entity for tracking important system events.
 *
 * Stores comprehensive audit information including:
 * - Who performed the action (userId, userRealm)
 * - What happened (type, action, resource)
 * - When it happened (createdAt)
 * - Context and details (metadata, ipAddress, userAgent)
 */
declare const audits: import("alepha/orm").EntityPrimitive<import("zod").ZodObject<{
  id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
  createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
  organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
  type: import("zod").ZodString;
  action: import("zod").ZodString;
  severity: import("alepha/orm").PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
    critical: "critical";
    info: "info";
    warning: "warning";
  }>>, typeof import("alepha/orm").PG_DEFAULT>;
  userId: import("zod").ZodOptional<import("zod").ZodString>;
  userRealm: import("zod").ZodOptional<import("zod").ZodString>;
  userEmail: import("zod").ZodOptional<import("zod").ZodString>;
  resourceType: import("zod").ZodOptional<import("zod").ZodString>;
  resourceId: import("zod").ZodOptional<import("zod").ZodString>;
  description: import("zod").ZodOptional<import("zod").ZodString>;
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
  ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
  userAgent: import("zod").ZodOptional<import("zod").ZodString>;
  sessionId: import("zod").ZodOptional<import("zod").ZodString>;
  requestId: import("zod").ZodOptional<import("zod").ZodString>;
  success: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
  errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
}, import("zod/v4/core").$strip>>;
declare const auditEntitySchema: import("zod").ZodObject<{
  id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
  createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
  organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
  type: import("zod").ZodString;
  action: import("zod").ZodString;
  severity: import("alepha/orm").PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
    critical: "critical";
    info: "info";
    warning: "warning";
  }>>, typeof import("alepha/orm").PG_DEFAULT>;
  userId: import("zod").ZodOptional<import("zod").ZodString>;
  userRealm: import("zod").ZodOptional<import("zod").ZodString>;
  userEmail: import("zod").ZodOptional<import("zod").ZodString>;
  resourceType: import("zod").ZodOptional<import("zod").ZodString>;
  resourceId: import("zod").ZodOptional<import("zod").ZodString>;
  description: import("zod").ZodOptional<import("zod").ZodString>;
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
  ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
  userAgent: import("zod").ZodOptional<import("zod").ZodString>;
  sessionId: import("zod").ZodOptional<import("zod").ZodString>;
  requestId: import("zod").ZodOptional<import("zod").ZodString>;
  success: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
  errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
}, import("zod/v4/core").$strip>;
declare const auditEntityInsertSchema: import("alepha/orm").TObjectInsert<import("zod").ZodObject<{
  id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
  createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
  organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
  type: import("zod").ZodString;
  action: import("zod").ZodString;
  severity: import("alepha/orm").PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
    critical: "critical";
    info: "info";
    warning: "warning";
  }>>, typeof import("alepha/orm").PG_DEFAULT>;
  userId: import("zod").ZodOptional<import("zod").ZodString>;
  userRealm: import("zod").ZodOptional<import("zod").ZodString>;
  userEmail: import("zod").ZodOptional<import("zod").ZodString>;
  resourceType: import("zod").ZodOptional<import("zod").ZodString>;
  resourceId: import("zod").ZodOptional<import("zod").ZodString>;
  description: import("zod").ZodOptional<import("zod").ZodString>;
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
  ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
  userAgent: import("zod").ZodOptional<import("zod").ZodString>;
  sessionId: import("zod").ZodOptional<import("zod").ZodString>;
  requestId: import("zod").ZodOptional<import("zod").ZodString>;
  success: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
  errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
}, import("zod/v4/core").$strip>>;
type AuditEntity = Static<typeof audits.schema>;
//#endregion
//#region ../../src/api/audits/schemas/auditQuerySchema.d.ts
/**
 * Query schema for searching and filtering audit logs.
 */
declare const auditQuerySchema: import("zod").ZodObject<{
  page: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
  size: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
  sort: import("zod").ZodOptional<import("zod").ZodString>;
  type: import("zod").ZodOptional<import("zod").ZodString>;
  action: import("zod").ZodOptional<import("zod").ZodString>;
  severity: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
    critical: "critical";
    info: "info";
    warning: "warning";
  }>>>;
  userId: import("zod").ZodOptional<import("zod").ZodString>;
  userRealm: import("zod").ZodOptional<import("zod").ZodString>;
  resourceType: import("zod").ZodOptional<import("zod").ZodString>;
  resourceId: import("zod").ZodOptional<import("zod").ZodString>;
  success: import("zod").ZodOptional<import("zod").ZodBoolean>;
  from: import("zod").ZodOptional<import("zod").ZodString>;
  to: import("zod").ZodOptional<import("zod").ZodString>;
  search: import("zod").ZodOptional<import("zod").ZodString>;
}, import("zod/v4/core").$strip>;
type AuditQuery = Static<typeof auditQuerySchema>;
//#endregion
//#region ../../src/api/audits/schemas/createAuditSchema.d.ts
/**
 * Schema for creating a new audit log entry.
 */
declare const createAuditSchema: import("zod").ZodObject<{
  type: import("zod").ZodString;
  action: import("zod").ZodString;
  severity: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
    critical: "critical";
    info: "info";
    warning: "warning";
  }>>>;
  userId: import("zod").ZodOptional<import("zod").ZodString>;
  userRealm: import("zod").ZodOptional<import("zod").ZodString>;
  userEmail: import("zod").ZodOptional<import("zod").ZodString>;
  resourceType: import("zod").ZodOptional<import("zod").ZodString>;
  resourceId: import("zod").ZodOptional<import("zod").ZodString>;
  description: import("zod").ZodOptional<import("zod").ZodString>;
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
  ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
  userAgent: import("zod").ZodOptional<import("zod").ZodString>;
  sessionId: import("zod").ZodOptional<import("zod").ZodString>;
  requestId: import("zod").ZodOptional<import("zod").ZodString>;
  success: import("zod").ZodOptional<import("zod").ZodBoolean>;
  errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
}, import("zod/v4/core").$strip>;
type CreateAudit = Static<typeof createAuditSchema>;
//#endregion
//#region ../../src/api/audits/services/AuditService.d.ts
/**
 * Registered audit type definition.
 */
interface AuditTypeDefinition {
  type: string;
  description?: string;
  actions: string[];
  /**
   * Dedicated retention (in days) for this audit type.
   *
   * Overrides the global default applied by the cleanup job. `0` keeps entries
   * forever. When `undefined`, the global default retention applies.
   */
  retentionDays?: number;
}
/**
 * Service for managing audit logs.
 *
 * Provides methods for:
 * - Creating audit entries
 * - Querying audit history
 * - Aggregating audit statistics
 * - Managing registered audit types
 */
declare class AuditService {
  protected readonly alepha: Alepha;
  protected readonly log: import("alepha/logger").Logger;
  protected readonly repo: import("alepha/orm").Repository<import("zod").ZodObject<{
    id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
    createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
    organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
    type: import("zod").ZodString;
    action: import("zod").ZodString;
    severity: import("alepha/orm").PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
      critical: "critical";
      info: "info";
      warning: "warning";
    }>>, typeof import("alepha/orm").PG_DEFAULT>;
    userId: import("zod").ZodOptional<import("zod").ZodString>;
    userRealm: import("zod").ZodOptional<import("zod").ZodString>;
    userEmail: import("zod").ZodOptional<import("zod").ZodString>;
    resourceType: import("zod").ZodOptional<import("zod").ZodString>;
    resourceId: import("zod").ZodOptional<import("zod").ZodString>;
    description: import("zod").ZodOptional<import("zod").ZodString>;
    metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
    ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
    userAgent: import("zod").ZodOptional<import("zod").ZodString>;
    sessionId: import("zod").ZodOptional<import("zod").ZodString>;
    requestId: import("zod").ZodOptional<import("zod").ZodString>;
    success: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
    errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
  }, import("zod/v4/core").$strip>>;
  /**
   * Registry of audit types and their allowed actions.
   */
  protected readonly auditTypes: Map<string, AuditTypeDefinition>;
  /**
   * Register an audit type with its allowed actions.
   */
  registerType(definition: AuditTypeDefinition): void;
  /**
   * Get all registered audit types.
   */
  getRegisteredTypes(): AuditTypeDefinition[];
  /**
   * Distinct action names across all registered audit types, sorted.
   *
   * Sourced from the `$audit` type registry. Audit types register lazily —
   * when their holder (e.g. `SessionAudits`, `ParameterAudits`) is first
   * injected — so the admin filter only lists actions for audit domains that
   * are actually in use, which is the intended behaviour.
   */
  getDistinctActions(): string[];
  /**
   * Get current request context if available.
   */
  protected getRequestContext(): ServerRequest | undefined;
  /**
   * Create a new audit log entry.
   * Automatically populates ipAddress, userAgent, and requestId from the current request context.
   */
  create(data: CreateAudit): Promise<AuditEntity>;
  /**
   * Record an audit event (convenience method).
   */
  record(type: string, action: string, options?: Omit<CreateAudit, "type" | "action">): Promise<AuditEntity>;
  /**
   * Find audit entries with filtering and pagination.
   */
  find(query?: AuditQuery): Promise<Page<AuditEntity>>;
  /**
   * Get audit entry by ID.
   */
  getById(id: string): Promise<AuditEntity>;
  /**
   * Get audit entries for a specific user.
   */
  findByUser(userId: string, query?: Omit<AuditQuery, "userId">): Promise<Page<AuditEntity>>;
  /**
   * Get audit entries for a specific resource.
   */
  findByResource(resourceType: string, resourceId: string, query?: Omit<AuditQuery, "resourceType" | "resourceId">): Promise<Page<AuditEntity>>;
  /**
   * Get audit statistics for a time period.
   */
  getStats(options?: {
    from?: Date;
    to?: Date;
    userRealm?: string;
  }): Promise<AuditStats>;
  /**
   * Delete audit entries created before the given date (retention policy).
   *
   * @returns number of deleted entries.
   */
  deleteOlderThan(date: Date): Promise<number>;
  /**
   * Delete audit entries that have outlived their retention window.
   *
   * Each registered audit type that declares a dedicated `retentionDays` is
   * pruned using its own window; every other type — including unregistered or
   * legacy types — falls back to `defaultRetentionDays`. A retention of `0`
   * (per-type or default) keeps that scope forever.
   *
   * `now` is injected rather than read from the clock so the policy is
   * deterministic and testable.
   *
   * @param now - reference "now" used to compute cutoff dates.
   * @param defaultRetentionDays - global default for types without an override.
   * @returns total number of deleted entries.
   */
  deleteExpired(now: Date, defaultRetentionDays: number): Promise<number>;
}
/**
 * Audit statistics summary.
 */
interface AuditStats {
  total: number;
  byType: Record<string, number>;
  bySeverity: Record<AuditSeverity, number>;
  successRate: number;
  recentFailures: AuditEntity[];
}
//#endregion
//#region ../../src/api/audits/controllers/AdminAuditController.d.ts
/**
 * REST API controller for audit log management.
 *
 * Provides endpoints for:
 * - Querying audit logs with filtering
 * - Creating audit entries
 * - Getting audit statistics
 * - Viewing registered audit types
 */
declare class AdminAuditController {
  protected readonly url = "/audits";
  protected readonly group = "admin:audits";
  protected readonly auditService: AuditService;
  protected readonly repo: import("alepha/orm").Repository<import("zod").ZodObject<{
    id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
    createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
    organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
    type: import("zod").ZodString;
    action: import("zod").ZodString;
    severity: import("alepha/orm").PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
      critical: "critical";
      info: "info";
      warning: "warning";
    }>>, typeof import("alepha/orm").PG_DEFAULT>;
    userId: import("zod").ZodOptional<import("zod").ZodString>;
    userRealm: import("zod").ZodOptional<import("zod").ZodString>;
    userEmail: import("zod").ZodOptional<import("zod").ZodString>;
    resourceType: import("zod").ZodOptional<import("zod").ZodString>;
    resourceId: import("zod").ZodOptional<import("zod").ZodString>;
    description: import("zod").ZodOptional<import("zod").ZodString>;
    metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
    ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
    userAgent: import("zod").ZodOptional<import("zod").ZodString>;
    sessionId: import("zod").ZodOptional<import("zod").ZodString>;
    requestId: import("zod").ZodOptional<import("zod").ZodString>;
    success: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
    errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
  }, import("zod/v4/core").$strip>>;
  /**
   * Find audit entries with filtering and pagination.
   */
  readonly findAudits: import("alepha/server").ActionPrimitiveFn<{
    query: import("zod").ZodObject<{
      page: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
      size: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
      sort: import("zod").ZodOptional<import("zod").ZodString>;
      type: import("zod").ZodOptional<import("zod").ZodString>;
      action: import("zod").ZodOptional<import("zod").ZodString>;
      severity: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
        critical: "critical";
        info: "info";
        warning: "warning";
      }>>>;
      userId: import("zod").ZodOptional<import("zod").ZodString>;
      userRealm: import("zod").ZodOptional<import("zod").ZodString>;
      resourceType: import("zod").ZodOptional<import("zod").ZodString>;
      resourceId: import("zod").ZodOptional<import("zod").ZodString>;
      success: import("zod").ZodOptional<import("zod").ZodBoolean>;
      from: import("zod").ZodOptional<import("zod").ZodString>;
      to: import("zod").ZodOptional<import("zod").ZodString>;
      search: import("zod").ZodOptional<import("zod").ZodString>;
    }, import("zod/v4/core").$strip>;
    response: import("zod").ZodObject<{
      content: import("zod").ZodArray<import("zod").ZodObject<{
        id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
        createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
        organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
        type: import("zod").ZodString;
        action: import("zod").ZodString;
        severity: import("alepha/orm").PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
          critical: "critical";
          info: "info";
          warning: "warning";
        }>>, typeof import("alepha/orm").PG_DEFAULT>;
        userId: import("zod").ZodOptional<import("zod").ZodString>;
        userRealm: import("zod").ZodOptional<import("zod").ZodString>;
        userEmail: import("zod").ZodOptional<import("zod").ZodString>;
        resourceType: import("zod").ZodOptional<import("zod").ZodString>;
        resourceId: import("zod").ZodOptional<import("zod").ZodString>;
        description: import("zod").ZodOptional<import("zod").ZodString>;
        metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
        ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
        userAgent: import("zod").ZodOptional<import("zod").ZodString>;
        sessionId: import("zod").ZodOptional<import("zod").ZodString>;
        requestId: import("zod").ZodOptional<import("zod").ZodString>;
        success: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
        errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
      }, import("zod/v4/core").$strip>>;
      page: import("zod").ZodObject<{
        number: import("zod").ZodInt;
        size: import("zod").ZodInt;
        offset: import("zod").ZodInt;
        numberOfElements: import("zod").ZodInt;
        totalElements: import("zod").ZodOptional<import("zod").ZodInt>;
        totalPages: import("zod").ZodOptional<import("zod").ZodInt>;
        isEmpty: import("zod").ZodBoolean;
        isFirst: import("zod").ZodBoolean;
        isLast: import("zod").ZodBoolean;
      }, import("zod/v4/core").$strip>;
    }, import("zod/v4/core").$strip>;
  }>;
  /**
   * Get a single audit entry by ID.
   */
  readonly getAudit: import("alepha/server").ActionPrimitiveFn<{
    params: import("zod").ZodObject<{
      id: import("zod").ZodString;
    }, import("zod/v4/core").$strip>;
    response: import("zod").ZodObject<{
      id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
      createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
      organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
      type: import("zod").ZodString;
      action: import("zod").ZodString;
      severity: import("alepha/orm").PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
        critical: "critical";
        info: "info";
        warning: "warning";
      }>>, typeof import("alepha/orm").PG_DEFAULT>;
      userId: import("zod").ZodOptional<import("zod").ZodString>;
      userRealm: import("zod").ZodOptional<import("zod").ZodString>;
      userEmail: import("zod").ZodOptional<import("zod").ZodString>;
      resourceType: import("zod").ZodOptional<import("zod").ZodString>;
      resourceId: import("zod").ZodOptional<import("zod").ZodString>;
      description: import("zod").ZodOptional<import("zod").ZodString>;
      metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
      ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
      userAgent: import("zod").ZodOptional<import("zod").ZodString>;
      sessionId: import("zod").ZodOptional<import("zod").ZodString>;
      requestId: import("zod").ZodOptional<import("zod").ZodString>;
      success: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
      errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
    }, import("zod/v4/core").$strip>;
  }>;
  /**
   * Delete many audit entries by id in one repository call. Use with care —
   * audit logs are usually retained for compliance reasons.
   */
  readonly deleteAudits: import("alepha/server").ActionPrimitiveFn<{
    body: import("zod").ZodObject<{
      ids: import("zod").ZodArray<import("zod").ZodString>;
    }, import("zod/v4/core").$strip>;
    response: import("zod").ZodObject<{
      deleted: import("zod").ZodArray<import("zod").ZodString>;
    }, import("zod/v4/core").$strip>;
  }>;
  /**
   * Create a new audit entry.
   * System-only — this permission should never be assigned to human roles.
   */
  readonly createAudit: import("alepha/server").ActionPrimitiveFn<{
    body: import("zod").ZodObject<{
      type: import("zod").ZodString;
      action: import("zod").ZodString;
      severity: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
        critical: "critical";
        info: "info";
        warning: "warning";
      }>>>;
      userId: import("zod").ZodOptional<import("zod").ZodString>;
      userRealm: import("zod").ZodOptional<import("zod").ZodString>;
      userEmail: import("zod").ZodOptional<import("zod").ZodString>;
      resourceType: import("zod").ZodOptional<import("zod").ZodString>;
      resourceId: import("zod").ZodOptional<import("zod").ZodString>;
      description: import("zod").ZodOptional<import("zod").ZodString>;
      metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
      ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
      userAgent: import("zod").ZodOptional<import("zod").ZodString>;
      sessionId: import("zod").ZodOptional<import("zod").ZodString>;
      requestId: import("zod").ZodOptional<import("zod").ZodString>;
      success: import("zod").ZodOptional<import("zod").ZodBoolean>;
      errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
    }, import("zod/v4/core").$strip>;
    response: import("zod").ZodObject<{
      id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
      createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
      organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
      type: import("zod").ZodString;
      action: import("zod").ZodString;
      severity: import("alepha/orm").PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
        critical: "critical";
        info: "info";
        warning: "warning";
      }>>, typeof import("alepha/orm").PG_DEFAULT>;
      userId: import("zod").ZodOptional<import("zod").ZodString>;
      userRealm: import("zod").ZodOptional<import("zod").ZodString>;
      userEmail: import("zod").ZodOptional<import("zod").ZodString>;
      resourceType: import("zod").ZodOptional<import("zod").ZodString>;
      resourceId: import("zod").ZodOptional<import("zod").ZodString>;
      description: import("zod").ZodOptional<import("zod").ZodString>;
      metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
      ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
      userAgent: import("zod").ZodOptional<import("zod").ZodString>;
      sessionId: import("zod").ZodOptional<import("zod").ZodString>;
      requestId: import("zod").ZodOptional<import("zod").ZodString>;
      success: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
      errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
    }, import("zod/v4/core").$strip>;
  }>;
  /**
   * Get audit entries for a specific user.
   */
  readonly findByUser: import("alepha/server").ActionPrimitiveFn<{
    params: import("zod").ZodObject<{
      userId: import("zod").ZodString;
    }, import("zod/v4/core").$strip>;
    query: import("zod").ZodObject<{
      page: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
      size: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
      sort: import("zod").ZodOptional<import("zod").ZodString>;
      type: import("zod").ZodOptional<import("zod").ZodString>;
      action: import("zod").ZodOptional<import("zod").ZodString>;
      severity: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
        critical: "critical";
        info: "info";
        warning: "warning";
      }>>>;
      userRealm: import("zod").ZodOptional<import("zod").ZodString>;
      resourceType: import("zod").ZodOptional<import("zod").ZodString>;
      resourceId: import("zod").ZodOptional<import("zod").ZodString>;
      success: import("zod").ZodOptional<import("zod").ZodBoolean>;
      from: import("zod").ZodOptional<import("zod").ZodString>;
      to: import("zod").ZodOptional<import("zod").ZodString>;
      search: import("zod").ZodOptional<import("zod").ZodString>;
    }, import("zod/v4/core").$strip>;
    response: import("zod").ZodObject<{
      content: import("zod").ZodArray<import("zod").ZodObject<{
        id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
        createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
        organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
        type: import("zod").ZodString;
        action: import("zod").ZodString;
        severity: import("alepha/orm").PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
          critical: "critical";
          info: "info";
          warning: "warning";
        }>>, typeof import("alepha/orm").PG_DEFAULT>;
        userId: import("zod").ZodOptional<import("zod").ZodString>;
        userRealm: import("zod").ZodOptional<import("zod").ZodString>;
        userEmail: import("zod").ZodOptional<import("zod").ZodString>;
        resourceType: import("zod").ZodOptional<import("zod").ZodString>;
        resourceId: import("zod").ZodOptional<import("zod").ZodString>;
        description: import("zod").ZodOptional<import("zod").ZodString>;
        metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
        ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
        userAgent: import("zod").ZodOptional<import("zod").ZodString>;
        sessionId: import("zod").ZodOptional<import("zod").ZodString>;
        requestId: import("zod").ZodOptional<import("zod").ZodString>;
        success: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
        errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
      }, import("zod/v4/core").$strip>>;
      page: import("zod").ZodObject<{
        number: import("zod").ZodInt;
        size: import("zod").ZodInt;
        offset: import("zod").ZodInt;
        numberOfElements: import("zod").ZodInt;
        totalElements: import("zod").ZodOptional<import("zod").ZodInt>;
        totalPages: import("zod").ZodOptional<import("zod").ZodInt>;
        isEmpty: import("zod").ZodBoolean;
        isFirst: import("zod").ZodBoolean;
        isLast: import("zod").ZodBoolean;
      }, import("zod/v4/core").$strip>;
    }, import("zod/v4/core").$strip>;
  }>;
  /**
   * Get audit entries for a specific resource.
   */
  readonly findByResource: import("alepha/server").ActionPrimitiveFn<{
    params: import("zod").ZodObject<{
      resourceType: import("zod").ZodString;
      resourceId: import("zod").ZodString;
    }, import("zod/v4/core").$strip>;
    query: import("zod").ZodObject<{
      page: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
      size: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodInt>>;
      sort: import("zod").ZodOptional<import("zod").ZodString>;
      type: import("zod").ZodOptional<import("zod").ZodString>;
      action: import("zod").ZodOptional<import("zod").ZodString>;
      severity: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
        critical: "critical";
        info: "info";
        warning: "warning";
      }>>>;
      userId: import("zod").ZodOptional<import("zod").ZodString>;
      userRealm: import("zod").ZodOptional<import("zod").ZodString>;
      success: import("zod").ZodOptional<import("zod").ZodBoolean>;
      from: import("zod").ZodOptional<import("zod").ZodString>;
      to: import("zod").ZodOptional<import("zod").ZodString>;
      search: import("zod").ZodOptional<import("zod").ZodString>;
    }, import("zod/v4/core").$strip>;
    response: import("zod").ZodObject<{
      content: import("zod").ZodArray<import("zod").ZodObject<{
        id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
        createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
        organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
        type: import("zod").ZodString;
        action: import("zod").ZodString;
        severity: import("alepha/orm").PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
          critical: "critical";
          info: "info";
          warning: "warning";
        }>>, typeof import("alepha/orm").PG_DEFAULT>;
        userId: import("zod").ZodOptional<import("zod").ZodString>;
        userRealm: import("zod").ZodOptional<import("zod").ZodString>;
        userEmail: import("zod").ZodOptional<import("zod").ZodString>;
        resourceType: import("zod").ZodOptional<import("zod").ZodString>;
        resourceId: import("zod").ZodOptional<import("zod").ZodString>;
        description: import("zod").ZodOptional<import("zod").ZodString>;
        metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
        ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
        userAgent: import("zod").ZodOptional<import("zod").ZodString>;
        sessionId: import("zod").ZodOptional<import("zod").ZodString>;
        requestId: import("zod").ZodOptional<import("zod").ZodString>;
        success: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
        errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
      }, import("zod/v4/core").$strip>>;
      page: import("zod").ZodObject<{
        number: import("zod").ZodInt;
        size: import("zod").ZodInt;
        offset: import("zod").ZodInt;
        numberOfElements: import("zod").ZodInt;
        totalElements: import("zod").ZodOptional<import("zod").ZodInt>;
        totalPages: import("zod").ZodOptional<import("zod").ZodInt>;
        isEmpty: import("zod").ZodBoolean;
        isFirst: import("zod").ZodBoolean;
        isLast: import("zod").ZodBoolean;
      }, import("zod/v4/core").$strip>;
    }, import("zod/v4/core").$strip>;
  }>;
  /**
   * Get audit statistics.
   */
  readonly getAuditStats: import("alepha/server").ActionPrimitiveFn<{
    query: import("zod").ZodObject<{
      from: import("zod").ZodOptional<import("zod").ZodString>;
      to: import("zod").ZodOptional<import("zod").ZodString>;
      userRealm: import("zod").ZodOptional<import("zod").ZodString>;
    }, import("zod/v4/core").$strip>;
    response: import("zod").ZodObject<{
      total: import("zod").ZodInt;
      byType: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodInt>;
      bySeverity: import("zod").ZodObject<{
        info: import("zod").ZodInt;
        warning: import("zod").ZodInt;
        critical: import("zod").ZodInt;
      }, import("zod/v4/core").$strip>;
      successRate: import("zod").ZodNumber;
      recentFailures: import("zod").ZodArray<import("zod").ZodObject<{
        id: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_PRIMARY_KEY>, typeof import("alepha/orm").PG_DEFAULT>;
        createdAt: import("alepha/orm").PgAttr<import("alepha/orm").PgAttr<import("zod").ZodString, typeof import("alepha/orm").PG_CREATED_AT>, typeof import("alepha/orm").PG_DEFAULT>;
        organizationId: import("alepha/orm").PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof import("alepha/orm").PG_ORGANIZATION>;
        type: import("zod").ZodString;
        action: import("zod").ZodString;
        severity: import("alepha/orm").PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
          critical: "critical";
          info: "info";
          warning: "warning";
        }>>, typeof import("alepha/orm").PG_DEFAULT>;
        userId: import("zod").ZodOptional<import("zod").ZodString>;
        userRealm: import("zod").ZodOptional<import("zod").ZodString>;
        userEmail: import("zod").ZodOptional<import("zod").ZodString>;
        resourceType: import("zod").ZodOptional<import("zod").ZodString>;
        resourceId: import("zod").ZodOptional<import("zod").ZodString>;
        description: import("zod").ZodOptional<import("zod").ZodString>;
        metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
        ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
        userAgent: import("zod").ZodOptional<import("zod").ZodString>;
        sessionId: import("zod").ZodOptional<import("zod").ZodString>;
        requestId: import("zod").ZodOptional<import("zod").ZodString>;
        success: import("alepha/orm").PgAttr<import("zod").ZodBoolean, typeof import("alepha/orm").PG_DEFAULT>;
        errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
      }, import("zod/v4/core").$strip>>;
    }, import("zod/v4/core").$strip>;
  }>;
  /**
   * List distinct action names present in the audit log (for filters).
   */
  readonly getAuditActions: import("alepha/server").ActionPrimitiveFn<{
    response: import("zod").ZodArray<import("zod").ZodString>;
  }>;
  /**
   * Get registered audit types.
   */
  readonly getTypes: import("alepha/server").ActionPrimitiveFn<{
    response: import("zod").ZodArray<import("zod").ZodObject<{
      type: import("zod").ZodString;
      description: import("zod").ZodOptional<import("zod").ZodString>;
      actions: import("zod").ZodArray<import("zod").ZodString>;
    }, import("zod/v4/core").$strip>>;
  }>;
  /**
   * Get distinct values for filters.
   */
  readonly getFilterOptions: import("alepha/server").ActionPrimitiveFn<{
    response: import("zod").ZodObject<{
      types: import("zod").ZodArray<import("zod").ZodString>;
      actions: import("zod").ZodArray<import("zod").ZodString>;
      resourceTypes: import("zod").ZodArray<import("zod").ZodString>;
      userRealms: import("zod").ZodArray<import("zod").ZodString>;
    }, import("zod/v4/core").$strip>;
  }>;
}
//#endregion
//#region ../../src/api/audits/parameters/AuditParameters.d.ts
/**
 * Audit module configuration atom.
 */
declare const auditOptions: import("alepha").Atom<import("zod").ZodObject<{
  retentionDays: import("zod").ZodDefault<import("zod").ZodInt>;
}, import("zod/v4/core").$strip>, "alepha.api.audits.options">;
type AuditOptions = Static<typeof auditOptions.schema>;
declare module "alepha" {
  interface State {
    [auditOptions.key]: AuditOptions;
  }
}
/**
 * Typed accessor for audit module configuration ({@link auditOptions}).
 */
declare class AuditParameters {
  protected readonly options: Readonly<{
    retentionDays: number;
  }>;
  get<K extends keyof AuditOptions>(key: K): AuditOptions[K];
}
//#endregion
//#region ../../src/api/audits/jobs/AuditJobs.d.ts
/**
 * Scheduled enforcement of the audit retention policy.
 */
declare class AuditJobs {
  protected readonly auditService: AuditService;
  protected readonly auditParameters: AuditParameters;
  /**
   * Delete audit entries that have outlived their retention window.
   *
   * Runs daily and applies each audit type's dedicated `retentionDays` plus the
   * global default (`auditOptions.retentionDays`). A default of `0` disables
   * cleanup for types without a dedicated retention.
   */
  readonly cleanExpired: import("alepha/scheduler").SchedulerPrimitive;
}
//#endregion
//#region ../../src/api/audits/primitives/$audit.d.ts
/**
 * Options for creating an audit type primitive.
 */
interface AuditPrimitiveOptions {
  /**
   * Unique audit type identifier (e.g., "auth", "payment", "order").
   */
  type: string;
  /**
   * Human-readable description of this audit type.
   */
  description?: string;
  /**
   * List of allowed actions for this audit type.
   */
  actions: string[];
  /**
   * Number of days entries of this audit type are retained before the periodic
   * cleanup job deletes them.
   *
   * Overrides the global default retention (see `auditOptions.retentionDays` in
   * `AuditParameters`). Set to `0` to keep this type's entries forever,
   * regardless of the global default. When omitted, the global default applies.
   *
   * @example
   * ```ts
   * // Keep security audits for two years, ignoring the global default.
   * $audit({ type: "security", actions: ["login"], retentionDays: 730 });
   * ```
   */
  retentionDays?: number;
}
/**
 * Audit type primitive for registering domain-specific audit events.
 *
 * Provides a type-safe way to define and log audit events within a specific domain.
 *
 * @example
 * ```ts
 * class PaymentAudits {
 *   audit = $audit({
 *     type: "payment",
 *     description: "Payment-related audit events",
 *     actions: ["create", "refund", "cancel", "dispute"],
 *   });
 *
 *   async logPaymentCreated(paymentId: string, userId: string, amount: number) {
 *     await this.audit.log("create", {
 *       userId,
 *       resourceType: "payment",
 *       resourceId: paymentId,
 *       description: `Payment of ${amount} created`,
 *       metadata: { amount },
 *     });
 *   }
 * }
 * ```
 */
declare class AuditPrimitive extends Primitive<AuditPrimitiveOptions> {
  protected readonly auditService: AuditService;
  /**
   * The audit type identifier.
   */
  get type(): string;
  /**
   * The audit type description.
   */
  get description(): string | undefined;
  /**
   * The allowed actions for this audit type.
   */
  get actions(): string[];
  /**
   * The dedicated retention (in days) for this audit type, if set.
   */
  get retentionDays(): number | undefined;
  /**
   * Log an audit event for this type.
   */
  log(action: string, options?: AuditLogOptions): Promise<void>;
  /**
   * Log a successful audit event.
   */
  logSuccess(action: string, options?: Omit<AuditLogOptions, "success">): Promise<void>;
  /**
   * Log a failed audit event.
   */
  logFailure(action: string, errorMessage: string, options?: Omit<AuditLogOptions, "success" | "errorMessage">): Promise<void>;
  /**
   * Called during initialization to register this audit type.
   */
  protected onInit(): void;
}
/**
 * Options for logging an audit event.
 */
interface AuditLogOptions {
  severity?: "info" | "warning" | "critical";
  userId?: string;
  userRealm?: string;
  userEmail?: string;
  resourceType?: string;
  resourceId?: string;
  description?: string;
  metadata?: Record<string, unknown>;
  ipAddress?: string;
  userAgent?: string;
  sessionId?: string;
  requestId?: string;
  success?: boolean;
  errorMessage?: string;
}
/**
 * Create an audit type primitive.
 *
 * @example
 * ```ts
 * class OrderAudits {
 *   audit = $audit({
 *     type: "order",
 *     description: "Order management events",
 *     actions: ["create", "update", "cancel", "fulfill", "ship"],
 *   });
 * }
 * ```
 */
declare const $audit: {
  (options: AuditPrimitiveOptions): AuditPrimitive;
  [KIND]: typeof AuditPrimitive;
};
//#endregion
//#region ../../src/orm/core/schemas/insertSchema.d.ts
/**
 * Transforms a TObject schema for insert operations.
 * All default properties at the root level are made optional.
 * Generated columns are excluded entirely.
 *
 * @example
 * Before: { name: string; age: number(default=0); fullName: generated }
 * After:  { name: string; age?: number; }
 */
type TObjectInsert<T extends TObject> = TObject<{ [K in keyof T["shape"] as T["shape"][K] extends {
  [PG_GENERATED]: any;
} ? never : K]: T["shape"][K] extends {
  [PG_DEFAULT]: any;
} | {
  [PG_ORGANIZATION]: any;
} ? TOptional<Extract<T["shape"][K], TSchema>> : T["shape"][K]; }>;
//#endregion
//#region ../../src/orm/core/schemas/updateSchema.d.ts
/**
 * Transforms a TObject schema for update operations.
 * All optional properties at the root level are made nullable (i.e., `T | null`).
 * Generated columns are excluded entirely.
 *
 * @example
 * Before: { name?: string; age: number; fullName: generated }
 * After:  { name?: string | null; age: number; }
 */
type TObjectUpdate<T extends TObject> = TObject<{ [K in keyof T["shape"] as T["shape"][K] extends {
  [PG_GENERATED]: any;
} ? never : K]: T["shape"][K] extends TOptional<infer U extends TSchema> ? TOptional<TUnion<[U, TNull]>> : T["shape"][K]; }>;
//#endregion
//#region ../../src/orm/core/primitives/$entity.d.ts
interface EntityPrimitiveOptions<T extends TObject, Keys = keyof Static<T>> {
  /**
   * The database table name that will be created for this entity.
   * If not provided, name will be inferred from the $repository variable name.
   */
  name: string;
  /**
   * TypeBox schema defining the table structure and column types.
   */
  schema: T;
  /**
   * Database indexes to create for query optimization.
   */
  indexes?: (Keys | {
    /**
     * Single column to index.
     */
    column: Keys;
    /**
     * Whether this should be a unique index (enforces uniqueness constraint).
     */
    unique?: boolean;
    /**
     * Custom name for the index. If not provided, generates name automatically.
     */
    name?: string;
    /**
     * Partial index condition. Only rows matching this SQL expression are indexed.
     */
    where?: SQL;
  } | {
    /**
     * Multiple columns for composite index (order matters for query optimization).
     */
    columns: Keys[];
    /**
     * Whether this should be a unique index (enforces uniqueness constraint).
     */
    unique?: boolean;
    /**
     * Custom name for the index. If not provided, generates name automatically.
     */
    name?: string;
    /**
     * Partial index condition. Only rows matching this SQL expression are indexed.
     */
    where?: SQL;
  } | {
    /**
     * SQL expressions for expression-based indexes.
     *
     * Can include column references and SQL functions like `LOWER()`, `UPPER()`, etc.
     * Columns and expressions can be mixed together.
     *
     * @example
     * ```ts
     * // Case-insensitive unique username per realm
     * indexes: [{
     *   expressions: (self) => [self.realm, sql`LOWER(${self.username})`],
     *   unique: true,
     *   name: "users_realm_username_lower_idx",
     * }]
     * ```
     */
    expressions: (self: Record<Keys & string, any>) => (SQL | any)[];
    /**
     * Whether this should be a unique index (enforces uniqueness constraint).
     */
    unique?: boolean;
    /**
     * Custom name for the index. If not provided, generates name automatically.
     */
    name: string;
    /**
     * Partial index condition. Only rows matching this SQL expression are indexed.
     */
    where?: SQL;
  })[];
  /**
   * Foreign key constraints to maintain referential integrity.
   */
  foreignKeys?: Array<{
    /**
     * Optional name for the foreign key constraint.
     */
    name?: string;
    /**
     * Local columns that reference the foreign table.
     */
    columns: Array<keyof Static<T>>;
    /**
     * Referenced columns in the foreign table.
     * Must be EntityColumn references from other entities.
     */
    foreignColumns: Array<() => EntityColumn<any>>;
  }>;
  /**
   * Additional table constraints for data validation.
   *
   * Constraints enforce business rules at the database level, providing
   * an additional layer of data integrity beyond application validation.
   *
   * **Constraint Types**:
   * - **Unique constraints**: Prevent duplicate values across columns
   * - **Check constraints**: Enforce custom validation rules with SQL expressions
   *
   * @example
   * ```ts
   * constraints: [
   *   {
   *     name: "unique_user_email",
   *     columns: ["email"],
   *     unique: true
   *   },
   *   {
   *     name: "valid_age_range",
   *     columns: ["age"],
   *     check: sql`age >= 0 AND age <= 150`
   *   },
   *   {
   *     name: "unique_user_username_per_tenant",
   *     columns: ["tenantId", "username"],
   *     unique: true
   *   }
   * ]
   * ```
   */
  constraints?: Array<{
    /**
     * Columns involved in this constraint.
     */
    columns: Array<keyof Static<T>>;
    /**
     * Optional name for the constraint.
     */
    name?: string;
    /**
     * Whether this is a unique constraint.
     */
    unique?: boolean | {};
    /**
     * SQL expression for check constraint validation.
     */
    check?: SQL;
  }>;
  /**
   * Advanced Drizzle ORM configuration for complex table setups.
   */
  config?: (self: BuildExtraConfigColumns<string, FromSchema<T>, "pg">) => PgTableExtraConfigValue[];
}
declare class EntityPrimitive<T extends TObject = TObject> {
  readonly options: EntityPrimitiveOptions<T>;
  constructor(options: EntityPrimitiveOptions<T>);
  alias(alias: string): this;
  get cols(): EntityColumns<T>;
  get name(): string;
  get schema(): T;
  protected _insertSchema?: TObjectInsert<T>;
  get insertSchema(): TObjectInsert<T>;
  protected _updateSchema?: TObjectUpdate<T>;
  get updateSchema(): TObjectUpdate<T>;
}
/**
 * Convert a schema to columns.
 */
type FromSchema<T extends TObject> = { [key in keyof T["properties"]]: PgColumnBuilderBase; };
type EntityColumn<T extends TObject> = {
  name: string;
  entity: EntityPrimitive<T>;
};
type EntityColumns<T extends TObject> = { [key in keyof T["properties"]]: EntityColumn<T>; };
//#endregion
//#region ../../src/orm/core/constants/PG_SYMBOLS.d.ts
declare const PG_DEFAULT: unique symbol;
declare const PG_PRIMARY_KEY: unique symbol;
declare const PG_CREATED_AT: unique symbol;
declare const PG_UPDATED_AT: unique symbol;
declare const PG_DELETED_AT: unique symbol;
declare const PG_VERSION: unique symbol;
declare const PG_IDENTITY: unique symbol;
declare const PG_ENUM: unique symbol;
declare const PG_REF: unique symbol;
declare const PG_GENERATED: unique symbol;
declare const PG_ORGANIZATION: unique symbol;
/**
 * @deprecated Use `PG_IDENTITY` instead.
 */
declare const PG_SERIAL: unique symbol;
type PgSymbols = {
  [PG_DEFAULT]: {};
  [PG_PRIMARY_KEY]: {};
  [PG_CREATED_AT]: {};
  [PG_UPDATED_AT]: {};
  [PG_DELETED_AT]: {};
  [PG_VERSION]: {};
  [PG_IDENTITY]: PgIdentityOptions;
  [PG_REF]: PgRefOptions;
  [PG_ENUM]: PgEnumOptions;
  [PG_GENERATED]: PgGeneratedOptions;
  [PG_ORGANIZATION]: PgOrganizationOptions;
  /**
   * @deprecated Use `PG_IDENTITY` instead.
   */
  [PG_SERIAL]: {};
};
type PgSymbolKeys = keyof PgSymbols;
interface PgOrganizationOptions {
  /**
   * Fail-closed tenant scoping. When `true`, the repository (a) refuses any
   * read/write with no resolved tenant instead of falling through to an
   * unfiltered "see/write everything" query, and (b) drops the
   * `OR organizationId IS NULL` "global row" escape — a scoped tenant never
   * sees NULL/global rows. Use for security-sensitive tables. Defaults to
   * `false` (the historic fail-open semantics).
   */
  strict?: boolean;
}
type PgIdentityOptions = {
  mode: "always" | "byDefault";
} & PgSequenceOptions & {
  name?: string;
};
interface PgEnumOptions {
  name?: string;
  description?: string;
}
interface PgGeneratedOptions {
  /**
   * SQL expression for the generated column.
   */
  expression: SQL;
  /**
   * Storage mode for the generated column.
   * - `"stored"` — value is computed on write and stored on disk (default for PostgreSQL).
   * - `"virtual"` — value is computed on read (default for SQLite).
   */
  mode?: "stored" | "virtual";
}
interface PgRefOptions {
  ref: () => {
    name: string;
    entity: EntityPrimitive;
  };
  actions?: {
    onUpdate?: UpdateDeleteAction;
    onDelete?: UpdateDeleteAction;
  };
}
//#endregion
//#region ../../src/orm/core/helpers/pgAttr.d.ts
/**
 * Type representation.
 */
type PgAttr<T extends TSchema, TAttr extends PgSymbolKeys> = T & { [K in TAttr]: PgSymbols[K]; };
//#endregion
//#region ../../src/orm/core/schemas/databaseEnvSchema.d.ts
/**
 * Base database environment schema.
 *
 * Defines the `DATABASE_URL` connection string used by all ORM providers
 * to determine the database driver and connection target.
 *
 * Supported URL formats:
 * - `sqlite://:memory:` or `sqlite://./path/to/db` — SQLite (Node.js or Bun)
 * - `postgres://user:password@host:port/database` — PostgreSQL (Node.js or Bun)
 * - `pglite://:memory:` or `pglite://./path` — PGlite (embedded Postgres)
 * - `d1://BINDING_NAME` — Cloudflare D1
 * - `hyperdrive://BINDING_NAME` — Cloudflare Hyperdrive
 */
declare const databaseEnvSchema: import("zod").ZodObject<{
  DATABASE_URL: import("zod").ZodOptional<import("zod").ZodString>;
  DATABASE_SYNC: import("zod").ZodOptional<import("zod").ZodBoolean>;
}, import("zod/v4/core").$strip>;
declare module "alepha" {
  interface Env extends Partial<Static<typeof databaseEnvSchema>> {}
}
//#endregion
//#region ../../src/api/audits/schemas/auditResourceSchema.d.ts
/**
 * Resource schema for audit log responses.
 */
declare const auditResourceSchema: import("zod").ZodObject<{
  id: PgAttr<PgAttr<import("zod").ZodString, typeof PG_PRIMARY_KEY>, typeof PG_DEFAULT>;
  createdAt: PgAttr<PgAttr<import("zod").ZodString, typeof PG_CREATED_AT>, typeof PG_DEFAULT>;
  organizationId: PgAttr<import("zod").ZodOptional<import("zod").ZodString> | import("zod").ZodString, typeof PG_ORGANIZATION>;
  type: import("zod").ZodString;
  action: import("zod").ZodString;
  severity: PgAttr<import("zod").ZodDefault<import("zod").ZodEnum<{
    critical: "critical";
    info: "info";
    warning: "warning";
  }>>, typeof PG_DEFAULT>;
  userId: import("zod").ZodOptional<import("zod").ZodString>;
  userRealm: import("zod").ZodOptional<import("zod").ZodString>;
  userEmail: import("zod").ZodOptional<import("zod").ZodString>;
  resourceType: import("zod").ZodOptional<import("zod").ZodString>;
  resourceId: import("zod").ZodOptional<import("zod").ZodString>;
  description: import("zod").ZodOptional<import("zod").ZodString>;
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>>;
  ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
  userAgent: import("zod").ZodOptional<import("zod").ZodString>;
  sessionId: import("zod").ZodOptional<import("zod").ZodString>;
  requestId: import("zod").ZodOptional<import("zod").ZodString>;
  success: PgAttr<import("zod").ZodBoolean, typeof PG_DEFAULT>;
  errorMessage: import("zod").ZodOptional<import("zod").ZodString>;
}, import("zod/v4/core").$strip>;
type AuditResource = Static<typeof auditResourceSchema>;
//#endregion
//#region ../../src/api/audits/index.d.ts
/**
 * Audit trail for compliance.
 *
 * **Features:**
 * - Domain-specific audit types
 * - Audit event logging
 * - Filtering and searching
 * - User action tracking
 * - Retention policy with a default + per-type TTL ({@link AuditParameters}, {@link AuditJobs})
 *
 * @module alepha.api.audits
 */
declare const AlephaApiAudits: import("alepha").Service<import("alepha").Module>;
//#endregion
export { $audit, AdminAuditController, AlephaApiAudits, AuditEntity, AuditJobs, AuditLogOptions, AuditOptions, AuditParameters, AuditPrimitive, AuditPrimitiveOptions, AuditQuery, AuditResource, AuditService, AuditSeverity, AuditStats, AuditTypeDefinition, CreateAudit, auditEntityInsertSchema, auditEntitySchema, auditOptions, auditQuerySchema, auditResourceSchema, auditSeveritySchema, audits, createAuditSchema };
//# sourceMappingURL=index.d.ts.map