import type { SiteSettings } from '@prisma/client';
import type { UpdateSiteSettingsInput } from './settings.schemas';
declare const SENSITIVE_FIELDS: readonly ["smtpHost", "smtpPort", "smtpUser", "smtpPass", "smtpFromAddress", "testEmailRecipient", "giteaApiToken", "giteaOauthClientSecret", "smsTermuxApiUrl", "smsTermuxApiKey", "smsTailscaleApiKey"];
export declare const siteSettingsService: {
    /** Full settings with encrypted fields decrypted (admin use) */
    get(): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        organizationName: string;
        organizationShortName: string;
        organizationLogoUrl: string | null;
        organizationFaviconUrl: string | null;
        adminColorPrimary: string;
        adminColorBgBase: string;
        publicColorPrimary: string;
        publicColorBgBase: string;
        publicColorBgContainer: string;
        publicHeaderGradient: string;
        footerText: string;
        loginSubtitle: string;
        emailFromName: string;
        smtpHost: string;
        smtpPort: number;
        smtpUser: string;
        smtpPass: string;
        smtpFromAddress: string;
        smtpActiveProvider: string;
        emailTestMode: boolean;
        testEmailRecipient: string;
        enablePublicRegistration: boolean;
        enableEmailVerification: boolean;
        autoApproveVerifiedUsers: boolean;
        enableInfluence: boolean;
        enableMap: boolean;
        enableNewsletter: boolean;
        enableLandingPages: boolean;
        enableMediaFeatures: boolean;
        enablePayments: boolean;
        enableGalleryAds: boolean;
        enableChat: boolean;
        enableEvents: boolean;
        enableDocsComments: boolean;
        enableSms: boolean;
        enablePeople: boolean;
        enableSocial: boolean;
        enableMeet: boolean;
        enableMeetingPlanner: boolean;
        enableTicketedEvents: boolean;
        enableSocialCalendar: boolean;
        enableDocsCollaboration: boolean;
        requireEventApproval: boolean;
        autoSyncPeopleToMap: boolean;
        smsTermuxApiUrl: string;
        smsTermuxApiKey: string;
        smsTailscaleApiKey: string;
        smsTailscaleTailnet: string;
        smsTailscaleDeviceId: string;
        smsTailscaleDeviceName: string;
        giteaApiToken: string;
        giteaCommentsRepoOwner: string;
        giteaCommentsRepoName: string;
        giteaOauthClientId: string;
        giteaOauthClientSecret: string;
        enableUserProvisioning: boolean;
        provisionGitea: boolean;
        provisionGiteaTiming: string;
        provisionVaultwarden: boolean;
        provisionVaultwardenTiming: string;
        provisionListmonk: boolean;
        provisionListmonkTiming: string;
        enableAutoUpgrade: boolean;
        autoUpgradeSchedule: string;
        autoUpgradePullServices: boolean;
        notifyAdminAutoUpgrade: boolean;
        navConfig: import("@prisma/client/runtime/library").JsonValue | null;
        notifyAdminShiftSignup: boolean;
        notifyAdminResponseSubmitted: boolean;
        notifyAdminSignRequested: boolean;
        notifyAdminShiftCancellation: boolean;
        notifyVolunteerSessionSummary: boolean;
        notifyVolunteerCancellation: boolean;
        notifyVolunteerShiftReminder: boolean;
        notifyVolunteerShiftThankYou: boolean;
        notifyVolunteerReengagement: boolean;
        reengagementInactiveDays: number;
        reengagementCooldownDays: number;
        homepageTagline: string | null;
        smsShiftReminders: boolean;
        smsShiftReminderHours: number;
        smsShiftSignupConfirm: boolean;
        smsVolunteerWelcome: boolean;
        useRegistryForUpgrade: boolean;
        giteaRegistryUrl: string;
    }>;
    /** Full settings + _effective object resolving actual runtime SMTP config (admin use) */
    getEffective(): Promise<{
        _effective: {
            provider: string;
            host: string;
            port: number;
            user: string;
            hasPassword: boolean;
            fromAddress: string;
            fromName: string;
            testMode: boolean;
            testRecipient: string;
        };
        id: string;
        createdAt: Date;
        updatedAt: Date;
        organizationName: string;
        organizationShortName: string;
        organizationLogoUrl: string | null;
        organizationFaviconUrl: string | null;
        adminColorPrimary: string;
        adminColorBgBase: string;
        publicColorPrimary: string;
        publicColorBgBase: string;
        publicColorBgContainer: string;
        publicHeaderGradient: string;
        footerText: string;
        loginSubtitle: string;
        emailFromName: string;
        smtpHost: string;
        smtpPort: number;
        smtpUser: string;
        smtpPass: string;
        smtpFromAddress: string;
        smtpActiveProvider: string;
        emailTestMode: boolean;
        testEmailRecipient: string;
        enablePublicRegistration: boolean;
        enableEmailVerification: boolean;
        autoApproveVerifiedUsers: boolean;
        enableInfluence: boolean;
        enableMap: boolean;
        enableNewsletter: boolean;
        enableLandingPages: boolean;
        enableMediaFeatures: boolean;
        enablePayments: boolean;
        enableGalleryAds: boolean;
        enableChat: boolean;
        enableEvents: boolean;
        enableDocsComments: boolean;
        enableSms: boolean;
        enablePeople: boolean;
        enableSocial: boolean;
        enableMeet: boolean;
        enableMeetingPlanner: boolean;
        enableTicketedEvents: boolean;
        enableSocialCalendar: boolean;
        enableDocsCollaboration: boolean;
        requireEventApproval: boolean;
        autoSyncPeopleToMap: boolean;
        smsTermuxApiUrl: string;
        smsTermuxApiKey: string;
        smsTailscaleApiKey: string;
        smsTailscaleTailnet: string;
        smsTailscaleDeviceId: string;
        smsTailscaleDeviceName: string;
        giteaApiToken: string;
        giteaCommentsRepoOwner: string;
        giteaCommentsRepoName: string;
        giteaOauthClientId: string;
        giteaOauthClientSecret: string;
        enableUserProvisioning: boolean;
        provisionGitea: boolean;
        provisionGiteaTiming: string;
        provisionVaultwarden: boolean;
        provisionVaultwardenTiming: string;
        provisionListmonk: boolean;
        provisionListmonkTiming: string;
        enableAutoUpgrade: boolean;
        autoUpgradeSchedule: string;
        autoUpgradePullServices: boolean;
        notifyAdminAutoUpgrade: boolean;
        navConfig: import("@prisma/client/runtime/library").JsonValue | null;
        notifyAdminShiftSignup: boolean;
        notifyAdminResponseSubmitted: boolean;
        notifyAdminSignRequested: boolean;
        notifyAdminShiftCancellation: boolean;
        notifyVolunteerSessionSummary: boolean;
        notifyVolunteerCancellation: boolean;
        notifyVolunteerShiftReminder: boolean;
        notifyVolunteerShiftThankYou: boolean;
        notifyVolunteerReengagement: boolean;
        reengagementInactiveDays: number;
        reengagementCooldownDays: number;
        homepageTagline: string | null;
        smsShiftReminders: boolean;
        smsShiftReminderHours: number;
        smsShiftSignupConfirm: boolean;
        smsVolunteerWelcome: boolean;
        useRegistryForUpgrade: boolean;
        giteaRegistryUrl: string;
    }>;
    /** Public-safe settings (strips SMTP credentials) */
    getPublic(): Promise<Omit<SiteSettings, (typeof SENSITIVE_FIELDS)[number]>>;
    update(data: UpdateSiteSettingsInput): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        organizationName: string;
        organizationShortName: string;
        organizationLogoUrl: string | null;
        organizationFaviconUrl: string | null;
        adminColorPrimary: string;
        adminColorBgBase: string;
        publicColorPrimary: string;
        publicColorBgBase: string;
        publicColorBgContainer: string;
        publicHeaderGradient: string;
        footerText: string;
        loginSubtitle: string;
        emailFromName: string;
        smtpHost: string;
        smtpPort: number;
        smtpUser: string;
        smtpPass: string;
        smtpFromAddress: string;
        smtpActiveProvider: string;
        emailTestMode: boolean;
        testEmailRecipient: string;
        enablePublicRegistration: boolean;
        enableEmailVerification: boolean;
        autoApproveVerifiedUsers: boolean;
        enableInfluence: boolean;
        enableMap: boolean;
        enableNewsletter: boolean;
        enableLandingPages: boolean;
        enableMediaFeatures: boolean;
        enablePayments: boolean;
        enableGalleryAds: boolean;
        enableChat: boolean;
        enableEvents: boolean;
        enableDocsComments: boolean;
        enableSms: boolean;
        enablePeople: boolean;
        enableSocial: boolean;
        enableMeet: boolean;
        enableMeetingPlanner: boolean;
        enableTicketedEvents: boolean;
        enableSocialCalendar: boolean;
        enableDocsCollaboration: boolean;
        requireEventApproval: boolean;
        autoSyncPeopleToMap: boolean;
        smsTermuxApiUrl: string;
        smsTermuxApiKey: string;
        smsTailscaleApiKey: string;
        smsTailscaleTailnet: string;
        smsTailscaleDeviceId: string;
        smsTailscaleDeviceName: string;
        giteaApiToken: string;
        giteaCommentsRepoOwner: string;
        giteaCommentsRepoName: string;
        giteaOauthClientId: string;
        giteaOauthClientSecret: string;
        enableUserProvisioning: boolean;
        provisionGitea: boolean;
        provisionGiteaTiming: string;
        provisionVaultwarden: boolean;
        provisionVaultwardenTiming: string;
        provisionListmonk: boolean;
        provisionListmonkTiming: string;
        enableAutoUpgrade: boolean;
        autoUpgradeSchedule: string;
        autoUpgradePullServices: boolean;
        notifyAdminAutoUpgrade: boolean;
        navConfig: import("@prisma/client/runtime/library").JsonValue | null;
        notifyAdminShiftSignup: boolean;
        notifyAdminResponseSubmitted: boolean;
        notifyAdminSignRequested: boolean;
        notifyAdminShiftCancellation: boolean;
        notifyVolunteerSessionSummary: boolean;
        notifyVolunteerCancellation: boolean;
        notifyVolunteerShiftReminder: boolean;
        notifyVolunteerShiftThankYou: boolean;
        notifyVolunteerReengagement: boolean;
        reengagementInactiveDays: number;
        reengagementCooldownDays: number;
        homepageTagline: string | null;
        smsShiftReminders: boolean;
        smsShiftReminderHours: number;
        smsShiftSignupConfirm: boolean;
        smsVolunteerWelcome: boolean;
        useRegistryForUpgrade: boolean;
        giteaRegistryUrl: string;
    }>;
};
export {};
//# sourceMappingURL=settings.service.d.ts.map