import { Setting } from './entities/setting.entity';
import { CreateSettingDto } from './dto/create-setting.dto';
import { UpdateSettingDto } from './dto/update-setting.dto';
import { BaseTenantService } from '@/common/base/service/base-crud.service';
import { TenantConnectionService } from '../tenant/tenant-connection.service';
export declare class SettingsService extends BaseTenantService<Setting> {
    protected tenantConnectionService: TenantConnectionService;
    protected entity: typeof Setting;
    constructor(tenantConnectionService: TenantConnectionService);
    private parseValue;
    private stringifyValue;
    createSetting(dto: CreateSettingDto, userId?: number): Promise<Setting | null>;
    findAllSettings(userId: number, isSuperAdmin: boolean, option?: string): Promise<{
        value: any;
        can_edit: boolean;
        can_delete: boolean;
        id: number;
        key: string;
        option: string;
        userId: number;
        isSystem: number;
        createdAt: Date;
        updatedAt: Date;
    }[]>;
    findByKeyPublic(key: string): Promise<{
        value: any;
        id: number;
        key: string;
        option: string;
        userId: number;
        isSystem: number;
        createdAt: Date;
        updatedAt: Date;
    }>;
    findByKey(key: string): Promise<{
        value: any;
        id: number;
        key: string;
        option: string;
        userId: number;
        isSystem: number;
        createdAt: Date;
        updatedAt: Date;
    }>;
    findByKeyNew(key: string, userId: number, isSuperAdmin: boolean): Promise<{
        value: any;
        can_edit: boolean;
        can_delete: boolean;
        id: number;
        key: string;
        option: string;
        userId: number;
        isSystem: number;
        createdAt: Date;
        updatedAt: Date;
    }>;
    updateSetting(key: string, dto: UpdateSettingDto, userId: number, isSuperAdmin: boolean): Promise<{
        value: any;
        can_edit: boolean;
        can_delete: boolean;
        id: number;
        key: string;
        option: string;
        userId: number;
        isSystem: number;
        createdAt: Date;
        updatedAt: Date;
    }>;
    delete(key: string, userId: number, isSuperAdmin: boolean): Promise<{
        success: boolean;
    }>;
    updateByOption(option: string, payload: Record<string, any>, userId: number, isSuperAdmin: boolean): Promise<{
        success: boolean;
        option: string;
        affected: number;
    } | {
        success: boolean;
        message: string;
    }>;
}
