/** * API key status enum */ export declare const apiKeyStatusEnum: import("drizzle-orm/pg-core").PgEnum<["active", "revoked", "expired"]>; /** * API keys table - stores API key records with all metadata */ export declare const apiKeys: import("drizzle-orm/pg-core").PgTableWithColumns<{ name: "api_keys"; schema: undefined; columns: { id: import("drizzle-orm/pg-core").PgColumn<{ name: "id"; tableName: "api_keys"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; name: import("drizzle-orm/pg-core").PgColumn<{ name: "name"; tableName: "api_keys"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; prefix: import("drizzle-orm/pg-core").PgColumn<{ name: "prefix"; tableName: "api_keys"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; hashedKey: import("drizzle-orm/pg-core").PgColumn<{ name: "hashed_key"; tableName: "api_keys"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; tenantId: import("drizzle-orm/pg-core").PgColumn<{ name: "tenant_id"; tableName: "api_keys"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; createdBy: import("drizzle-orm/pg-core").PgColumn<{ name: "created_by"; tableName: "api_keys"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; scopes: import("drizzle-orm/pg-core").PgColumn<{ name: "scopes"; tableName: "api_keys"; dataType: "json"; columnType: "PgJsonb"; data: string[]; driverParam: unknown; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: string[]; }>; rateLimitRequestsPerMinute: import("drizzle-orm/pg-core").PgColumn<{ name: "rate_limit_requests_per_minute"; tableName: "api_keys"; dataType: "number"; columnType: "PgInteger"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; rateLimitRequestsPerHour: import("drizzle-orm/pg-core").PgColumn<{ name: "rate_limit_requests_per_hour"; tableName: "api_keys"; dataType: "number"; columnType: "PgInteger"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; rateLimitBurstLimit: import("drizzle-orm/pg-core").PgColumn<{ name: "rate_limit_burst_limit"; tableName: "api_keys"; dataType: "number"; columnType: "PgInteger"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; status: import("drizzle-orm/pg-core").PgColumn<{ name: "status"; tableName: "api_keys"; dataType: "string"; columnType: "PgEnumColumn"; data: "active" | "revoked" | "expired"; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: ["active", "revoked", "expired"]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; expiresAt: import("drizzle-orm/pg-core").PgColumn<{ name: "expires_at"; tableName: "api_keys"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; createdAt: import("drizzle-orm/pg-core").PgColumn<{ name: "created_at"; tableName: "api_keys"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; lastUsedAt: import("drizzle-orm/pg-core").PgColumn<{ name: "last_used_at"; tableName: "api_keys"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; description: import("drizzle-orm/pg-core").PgColumn<{ name: "description"; tableName: "api_keys"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; allowedIps: import("drizzle-orm/pg-core").PgColumn<{ name: "allowed_ips"; tableName: "api_keys"; dataType: "json"; columnType: "PgJsonb"; data: string[]; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: string[]; }>; metadata: import("drizzle-orm/pg-core").PgColumn<{ name: "metadata"; tableName: "api_keys"; dataType: "json"; columnType: "PgJsonb"; data: Record; driverParam: unknown; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: Record; }>; }; dialect: "pg"; }>; /** * Rate limit state table - tracks rate limiting state per API key * * Note: This is designed for database persistence when Redis is unavailable. * For high-performance rate limiting, Redis should be preferred. * This table includes TTL-based cleanup support. */ export declare const apiKeyRateLimits: import("drizzle-orm/pg-core").PgTableWithColumns<{ name: "api_key_rate_limits"; schema: undefined; columns: { id: import("drizzle-orm/pg-core").PgColumn<{ name: "id"; tableName: "api_key_rate_limits"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; keyId: import("drizzle-orm/pg-core").PgColumn<{ name: "key_id"; tableName: "api_key_rate_limits"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; secondCount: import("drizzle-orm/pg-core").PgColumn<{ name: "second_count"; tableName: "api_key_rate_limits"; dataType: "number"; columnType: "PgInteger"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; secondResetAt: import("drizzle-orm/pg-core").PgColumn<{ name: "second_reset_at"; tableName: "api_key_rate_limits"; dataType: "number"; columnType: "PgBigInt53"; data: number; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; minuteCount: import("drizzle-orm/pg-core").PgColumn<{ name: "minute_count"; tableName: "api_key_rate_limits"; dataType: "number"; columnType: "PgInteger"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; minuteResetAt: import("drizzle-orm/pg-core").PgColumn<{ name: "minute_reset_at"; tableName: "api_key_rate_limits"; dataType: "number"; columnType: "PgBigInt53"; data: number; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; hourCount: import("drizzle-orm/pg-core").PgColumn<{ name: "hour_count"; tableName: "api_key_rate_limits"; dataType: "number"; columnType: "PgInteger"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; hourResetAt: import("drizzle-orm/pg-core").PgColumn<{ name: "hour_reset_at"; tableName: "api_key_rate_limits"; dataType: "number"; columnType: "PgBigInt53"; data: number; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; expiresAt: import("drizzle-orm/pg-core").PgColumn<{ name: "expires_at"; tableName: "api_key_rate_limits"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; updatedAt: import("drizzle-orm/pg-core").PgColumn<{ name: "updated_at"; tableName: "api_key_rate_limits"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; }; dialect: "pg"; }>; export type ApiKeyRecord = typeof apiKeys.$inferSelect; export type NewApiKeyRecord = typeof apiKeys.$inferInsert; export type ApiKeyRateLimitRecord = typeof apiKeyRateLimits.$inferSelect; export type NewApiKeyRateLimitRecord = typeof apiKeyRateLimits.$inferInsert;