import { Staff, StaffRole, CreateStaffRequest, UpdateStaffRequest, CreateRoleRequest, Permission, StaffListParams, StaffActivityLog, ActivityLogParams, StaffPerformanceReport, PerformanceReportParams } from '../types/staff';
import { BaseResource } from './base';
export declare class StaffResource extends BaseResource {
    /**
     * Get list of staff members
     */
    list(params?: StaffListParams): Promise<{
        data: Staff[];
    }>;
    /**
     * Get staff member by ID
     */
    getById(staffId: string): Promise<Staff>;
    /**
     * Create new staff member
     */
    create(data: CreateStaffRequest): Promise<Staff>;
    /**
     * Update staff member
     */
    update(staffId: string, data: UpdateStaffRequest): Promise<Staff>;
    /**
     * Get list of staff roles
     */
    listRoles(): Promise<{
        data: StaffRole[];
    }>;
    /**
     * Create new role
     */
    createRole(data: CreateRoleRequest): Promise<StaffRole>;
    /**
     * Update role
     */
    updateRole(roleId: number, data: Partial<StaffRole>): Promise<StaffRole>;
    /**
     * Delete role
     */
    deleteRole(roleId: number): Promise<void>;
    /**
     * Get list of available permissions
     */
    listPermissions(): Promise<{
        data: Permission[];
    }>;
    /**
     * Get staff activity logs
     */
    getActivityLogs(params?: ActivityLogParams): Promise<{
        data: StaffActivityLog[];
    }>;
    /**
     * Get staff member activity logs
     */
    getStaffActivityLogs(staffId: string, params?: Omit<ActivityLogParams, 'staff_id'>): Promise<{
        data: StaffActivityLog[];
    }>;
    /**
     * Get staff performance reports
     */
    getPerformanceReports(params: PerformanceReportParams): Promise<{
        data: StaffPerformanceReport[];
    }>;
    /**
     * Get individual staff performance report
     */
    getStaffPerformance(staffId: string, params: Omit<PerformanceReportParams, 'staff_id'>): Promise<StaffPerformanceReport>;
    /**
     * Reset staff password
     */
    resetPassword(staffId: string, newPassword: string): Promise<void>;
    /**
     * Enable/disable staff member
     */
    setActive(staffId: string, isActive: boolean): Promise<Staff>;
}
