import { HttpStatus } from '@nestjs/common';
import { PermissionUserContext } from '../../common/access-control/permission-context.types';
import { PermissionResolverService } from '../../common/access-control/permission-resolver.service';
import { DatabaseService } from '../../config';
import { defaultPaginationDto } from '../shared/shared.dto';
import { createDesignationDto, updateDesignationDto } from './designations.dto';
export declare class DesignationsService {
    private readonly db;
    private readonly permissionResolver;
    constructor(db: DatabaseService, permissionResolver: PermissionResolverService);
    private assertGeneralAccess;
    createDesignation(data: createDesignationDto, owner_id: string, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: string;
            designation_code?: string;
            description?: string;
            status?: "active" | "inactive" | "deleted";
            created_at?: string;
            updated_at?: string;
        };
        message: string;
        status: HttpStatus;
        details: any;
    }>;
    getDesignations(owner_id: string, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: string;
            designation_code?: string;
            description?: string;
            status?: "active" | "inactive" | "deleted";
            created_at?: string;
            updated_at?: string;
        }[];
        message: string;
        status: HttpStatus;
        details: any;
    }>;
    getFilteredDesignations(owner_id: string, query: defaultPaginationDto, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: string;
            designation_code?: string;
            description?: string;
            status?: "active" | "inactive" | "deleted";
            created_at?: string;
            updated_at?: string;
        }[];
        message: string;
        status: HttpStatus;
        details: {
            pagination: {
                total_items: any;
                total_pages: number;
                current_page: number;
                items_per_page: number;
                has_next_page: boolean;
                has_previous_page: boolean;
                next_page: number;
                previous_page: number;
            };
        };
    }>;
    getDesignationById(id: string, owner_id: string, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: string;
            designation_code?: string;
            description?: string;
            status?: "active" | "inactive" | "deleted";
            created_at?: string;
            updated_at?: string;
        };
        message: string;
        status: HttpStatus;
        details: any;
    }>;
    updateDesignation(id: string, data: updateDesignationDto, owner_id: string, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: string;
            designation_code?: string;
            description?: string;
            status?: "active" | "inactive" | "deleted";
            created_at?: string;
            updated_at?: string;
        };
        message: string;
        status: HttpStatus;
        details: any;
    }>;
    deleteDesignation(id: string, owner_id: string, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: string;
            designation_code?: string;
            description?: string;
            status?: "active" | "inactive" | "deleted";
            created_at?: string;
            updated_at?: string;
        };
        message: string;
        status: HttpStatus;
        details: {
            usedByMembers: any;
        };
    }>;
}
