import { AppContext } from '../types.js';
import { ResolverBase } from '../generic/ResolverBase.js';
export declare class SqlLoggingOptions {
    formatAsMigration?: boolean;
    description?: string;
    statementTypes?: 'queries' | 'mutations' | 'both';
    batchSeparator?: string;
    prettyPrint?: boolean;
    logRecordChangeMetadata?: boolean;
    retainEmptyLogFiles?: boolean;
    filterByUserId?: string;
    sessionName?: string;
}
export declare class SqlLoggingSession {
    id: string;
    filePath: string;
    startTime: Date;
    statementCount: number;
    options: SqlLoggingOptions;
    sessionName?: string;
    filterByUserId?: string;
}
export declare class SqlLoggingOptionsInput {
    formatAsMigration?: boolean;
    description?: string;
    statementTypes?: 'queries' | 'mutations' | 'both';
    batchSeparator?: string;
    prettyPrint?: boolean;
    logRecordChangeMetadata?: boolean;
    retainEmptyLogFiles?: boolean;
    filterByUserId?: string;
    sessionName?: string;
}
export declare class StartSqlLoggingInput {
    fileName?: string;
    options?: SqlLoggingOptionsInput;
    filterToCurrentUser?: boolean;
}
export declare class SqlLoggingConfig {
    enabled: boolean;
    defaultOptions: SqlLoggingOptions;
    allowedLogDirectory: string;
    maxActiveSessions: number;
    autoCleanupEmptyFiles: boolean;
    sessionTimeout: number;
    activeSessionCount: number;
}
export declare class SqlLoggingConfigResolver extends ResolverBase {
    private static readonly LOG_FILE_PREFIX;
    private checkOwnerAccess;
    sqlLoggingConfig(context: AppContext): Promise<SqlLoggingConfig>;
    activeSqlLoggingSessions(context: AppContext): Promise<SqlLoggingSession[]>;
    startSqlLogging(input: StartSqlLoggingInput, context: AppContext): Promise<SqlLoggingSession>;
    stopSqlLogging(sessionId: string, context: AppContext): Promise<boolean>;
    stopAllSqlLogging(context: AppContext): Promise<boolean>;
    updateSqlLoggingDefaults(options: SqlLoggingOptionsInput, context: AppContext): Promise<SqlLoggingOptions>;
    readSqlLogFile(sessionId: string, maxLines: number | null, context: AppContext): Promise<string>;
    debugCurrentUserEmail(context: AppContext): Promise<string>;
    private ensureDirectoryExists;
}
//# sourceMappingURL=SqlLoggingConfigResolver.d.ts.map