import type { AuditLogModuleOptions } from './interfaces/audit-log-options.interface'; import type { AuditSharedOptions } from './interfaces/audit-shared-options.interface'; import type { AuditExtensionOptions } from './prisma/audit-extension/audit-types'; import type { AuditTableSQLOptions, EnsurePartitionsOptions } from './sql'; /** Settings applied to both manual and automatic audit paths. */ export type AuditConfigSharedOptions = AuditSharedOptions & Pick; type Forbidden = { [P in K]?: never; }; type ModuleSettings = Omit; type ExtensionSettings = Omit; type SchemaSettings = Omit; export type AuditConfigModuleOptions = ModuleSettings & Forbidden; export type AuditConfigExtensionOptions = ExtensionSettings & Forbidden; export type AuditConfigSchemaOptions = SchemaSettings & Forbidden; type PostgreSqlSharedOptions = Omit & { provider?: 'postgresql'; }; type PortableSchemaOptions = Omit & { partitioned?: false; ginIndex?: false; enforcement?: 'trigger'; }; /** * PostgreSQL supports automatic tracking and every schema option. A SQL Server * or dynamically selected provider supports the portable manual configuration; * narrow the provider before enabling PostgreSQL-only features. */ export type AuditConfigInput = { shared?: PostgreSqlSharedOptions; module: AuditConfigModuleOptions; extension?: AuditConfigExtensionOptions; schema?: AuditConfigSchemaOptions; } | { shared: AuditConfigSharedOptions; module: AuditConfigModuleOptions; extension?: undefined; schema?: PortableSchemaOptions; }; export interface AuditConfig { moduleOptions: Omit; extensionOptions: T; schemaOptions: AuditTableSQLOptions; partitionOptions: Pick; } export declare function defineAuditConfig(input: AuditConfigInput & { extension: AuditConfigExtensionOptions; }): AuditConfig; export declare function defineAuditConfig(input: AuditConfigInput & { extension?: undefined; }): AuditConfig; export declare function defineAuditConfig(input: AuditConfigInput): AuditConfig; export {}; //# sourceMappingURL=define-audit-config.d.ts.map