import { LocaleService } from '@hed-hog/api-locale';
import { PaginationDTO, PaginationService } from '@hed-hog/api-pagination';
import { PrismaService } from '@hed-hog/api-prisma';
import { IntegrationDeveloperApiService } from '../integration/services/integration-developer-api.service';
import { CreateDTO } from './dto/create.dto';
import { DeleteDTO } from './dto/delete.dto';
import { SettingDTO } from './dto/setting.dto';
import { UpdateSettingListDTO } from './dto/update-setting-list.dto';
import { UpdateDTO } from './dto/update.dto';
export declare class SettingService {
    private readonly prismaService;
    private readonly paginationService;
    private readonly localeService;
    private readonly integrationApi;
    private readonly logger;
    private cachedSettings;
    constructor(prismaService: PrismaService, paginationService: PaginationService, localeService: LocaleService, integrationApi: IntegrationDeveloperApiService);
    exportSettings(includeSecrets?: boolean): Promise<Buffer>;
    importSettings(locale: string, file: MulterFile): Promise<{
        totalSettings: number;
        validSettings: number;
        invalidSlugs: any[];
        validSlugs: any[];
        fileData: any[];
    }>;
    confirmImport(settings: Array<{
        slug: string;
        value: string;
    }>): Promise<{
        success: boolean;
        updatedCount: number;
    }>;
    getSystemSettings(): Promise<any>;
    getEffectiveSettings(userId: number): Promise<any>;
    setManySettings(data: SettingDTO): Promise<{
        success: boolean;
    }>;
    getSettingFromGroup(locale: any, paginationParams: any, slug: string, userId: number): Promise<{
        total: any;
        lastPage: number;
        page: number;
        pageSize: number;
        prev: number;
        next: number;
        data: any[];
    }>;
    listSettingGroups(locale: string, paginationParams: PaginationDTO): Promise<{
        total: any;
        lastPage: number;
        page: number;
        pageSize: number;
        prev: number;
        next: number;
        data: any[];
    }>;
    listSettings(locale: string, paginationParams: PaginationDTO): Promise<{
        total: any;
        lastPage: number;
        page: number;
        pageSize: number;
        prev: number;
        next: number;
        data: any[];
    }>;
    updateSettingListOptions(settingId: number, data: UpdateSettingListDTO): Promise<{
        setting_list: {
            id: number;
            order: number;
            value: string;
        }[];
    } & {
        type: import("@prisma/client").$Enums.setting_type_0f055cd5ea_enum;
        id: number;
        value: string | null;
        created_at: Date;
        updated_at: Date;
        slug: string;
        group_id: number;
        component: import("@prisma/client").$Enums.setting_component_6e72a03bda_enum;
        user_override: boolean;
        subgroup_id: number | null;
    }>;
    get(settingId: number): Promise<{
        type: import("@prisma/client").$Enums.setting_type_0f055cd5ea_enum;
        id: number;
        value: string | null;
        created_at: Date;
        updated_at: Date;
        slug: string;
        group_id: number;
        component: import("@prisma/client").$Enums.setting_component_6e72a03bda_enum;
        user_override: boolean;
        subgroup_id: number | null;
    }>;
    create(data: CreateDTO, _locale: string): Promise<{
        type: import("@prisma/client").$Enums.setting_type_0f055cd5ea_enum;
        id: number;
        value: string | null;
        created_at: Date;
        updated_at: Date;
        slug: string;
        group_id: number;
        component: import("@prisma/client").$Enums.setting_component_6e72a03bda_enum;
        user_override: boolean;
        subgroup_id: number | null;
    }>;
    update({ id, data }: {
        id: number;
        data: UpdateDTO;
    }): Promise<{
        type: import("@prisma/client").$Enums.setting_type_0f055cd5ea_enum;
        id: number;
        value: string | null;
        created_at: Date;
        updated_at: Date;
        slug: string;
        group_id: number;
        component: import("@prisma/client").$Enums.setting_component_6e72a03bda_enum;
        user_override: boolean;
        subgroup_id: number | null;
    }>;
    updateFromSlug(slug: string, data: UpdateDTO): Promise<{
        type: import("@prisma/client").$Enums.setting_type_0f055cd5ea_enum;
        id: number;
        value: string | null;
        created_at: Date;
        updated_at: Date;
        slug: string;
        group_id: number;
        component: import("@prisma/client").$Enums.setting_component_6e72a03bda_enum;
        user_override: boolean;
        subgroup_id: number | null;
    }>;
    private normalizeValueForComparison;
    private isValueDefined;
    private emitSettingChangedEvents;
    setValueFormattedByType(type: string, value: any): any;
    getValueFormattedByType(type: string, value: any): any;
    delete(locale: string, { ids }: DeleteDTO): Promise<import("@prisma/client").Prisma.BatchPayload>;
    setSettingUserValue(locale: string, user_id: number, slug: string, value: string): Promise<{
        value: string;
        user_id: number;
        setting_id: number;
    }>;
    getSettingValues(slug: string | string[], userId?: number): Promise<Record<string, any>>;
    setCache(value: Record<string, any>): Record<string, any>;
    clearCache(): void;
    getUserSettings(user_id: number): Promise<({
        setting: {
            slug: string;
        };
    } & {
        id: number;
        value: string | null;
        user_id: number;
        created_at: Date;
        updated_at: Date;
        setting_id: number;
    })[]>;
    setValue(slug: string, value: string): Promise<import("@prisma/client").Prisma.BatchPayload>;
}
//# sourceMappingURL=setting.service.d.ts.map