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 { createHiringSourceDto, updateHiringSourceDto } from './hiring_sources.dto';
export declare class HiringSourcesService {
    private readonly db;
    private readonly permissionResolver;
    constructor(db: DatabaseService, permissionResolver: PermissionResolverService);
    private assertGeneralAccess;
    createHiringSource(data: createHiringSourceDto, owner_id: string, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: string;
            description?: string;
            status?: "active" | "inactive" | "deleted";
            created_at?: string;
            updated_at?: string;
        };
        message: string;
        status: HttpStatus;
        details: any;
    }>;
    getHiringSources(owner_id: string, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: string;
            description?: string;
            status?: "active" | "inactive" | "deleted";
            created_at?: string;
            updated_at?: string;
        }[];
        message: string;
        status: HttpStatus;
        details: any;
    }>;
    getFilteredHiringSources(owner_id: string, query: defaultPaginationDto, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: 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;
            };
        };
    }>;
    getHiringSourceById(id: string, owner_id: string, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: string;
            description?: string;
            status?: "active" | "inactive" | "deleted";
            created_at?: string;
            updated_at?: string;
        };
        message: string;
        status: HttpStatus;
        details: any;
    }>;
    updateHiringSource(id: string, data: updateHiringSourceDto, owner_id: string, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: string;
            description?: string;
            status?: "active" | "inactive" | "deleted";
            created_at?: string;
            updated_at?: string;
        };
        message: string;
        status: HttpStatus;
        details: any;
    }>;
    deleteHiringSource(id: string, owner_id: string, ctx: PermissionUserContext): Promise<{
        data: {
            id?: string;
            name?: string;
            description?: string;
            status?: "active" | "inactive" | "deleted";
            created_at?: string;
            updated_at?: string;
        };
        message: string;
        status: HttpStatus;
        details: {
            usedByMembers: any;
        };
    }>;
}
