import { HttpStatus } from '@nestjs/common';
import { OrgTimezoneService } from '../../common/timezone/org-timezone.service';
import { PermissionUserContext } from '../../common/access-control/permission-context.types';
import { PermissionResolverService } from '../../common/access-control/permission-resolver.service';
import { DatabaseService, UploadService } from '../../config';
import { CompanyInfoResponseDto, LeavePolicyResponseDto, UpdateCompanyInfoDto, UpdateLeavePolicyDto, UpdateWorkScheduleDto, WorkScheduleResponseDto, UpdateAttendanceValidationSettingsDto, AttendanceValidationSettingsResponseDto } from './configurations.dto';
export declare class ConfigurationsService {
    private readonly db;
    private readonly uploadService;
    private readonly permissionResolver;
    private readonly orgTimezone;
    constructor(db: DatabaseService, uploadService: UploadService, permissionResolver: PermissionResolverService, orgTimezone: OrgTimezoneService);
    private assertSettingsAccess;
    createDefaultConfiguration(owner_id: string): Promise<void>;
    getCompanyInfo(owner_id: string, ctx: PermissionUserContext): Promise<{
        data: CompanyInfoResponseDto;
        message: string;
        status: HttpStatus;
        details: null;
    }>;
    getWorkSchedule(owner_id: string, ctx: PermissionUserContext): Promise<{
        data: WorkScheduleResponseDto;
        message: string;
        status: HttpStatus;
        details: null;
    }>;
    getLeavePolicy(owner_id: string, ctx: PermissionUserContext): Promise<{
        data: LeavePolicyResponseDto;
        message: string;
        status: HttpStatus;
        details: null;
    }>;
    updateCompanyInfo(id: string, owner_id: string, data: UpdateCompanyInfoDto, ctx: PermissionUserContext): Promise<{
        data: CompanyInfoResponseDto;
        message: string;
        status: HttpStatus;
        details: null;
    }>;
    updateWorkSchedule(id: string, owner_id: string, data: UpdateWorkScheduleDto, ctx: PermissionUserContext): Promise<{
        data: WorkScheduleResponseDto;
        message: string;
        status: HttpStatus;
        details: null;
    }>;
    updateLeavePolicy(id: string, owner_id: string, data: UpdateLeavePolicyDto, ctx: PermissionUserContext): Promise<{
        data: LeavePolicyResponseDto;
        message: string;
        status: HttpStatus;
        details: null;
    }>;
    getWorkDaySchedules(owner_id: string, ctx: PermissionUserContext): Promise<{
        status: HttpStatus;
        message: string;
        data: any;
    }>;
    updateWorkDaySchedules(owner_id: string, body: {
        schedules: any[];
    }, ctx: PermissionUserContext): Promise<{
        status: HttpStatus;
        message: string;
        data: any;
    }>;
    getAttendanceValidationSettings(owner_id: string, _ctx?: PermissionUserContext): Promise<{
        data: AttendanceValidationSettingsResponseDto;
        message: string;
        status: HttpStatus;
        details: null;
    }>;
    updateAttendanceValidationSettings(owner_id: string, payload: UpdateAttendanceValidationSettingsDto, ctx?: PermissionUserContext): Promise<{
        data: AttendanceValidationSettingsResponseDto;
        message: string;
        status: HttpStatus;
        details: null;
    }>;
}
