import { Observable } from 'rxjs';
import { StaffMember, SearchCriteria } from './models';
import { HttpResponse, HttpClient } from '@angular/common/http';
import { Config } from './models/config';
export declare class AngularStaffService {
    private http;
    private config;
    private staffByIdCache;
    private staffByRacfIdCache;
    private staffSearchCache;
    constructor(http: HttpClient, config: Config);
    Format(staff: StaffMember, format: string): string;
    /**
    * Method GetStaffById
    * @param id Id for Staff to retrieve
    * @return Full HTTP response as Observable
    */
    GetStaffById(id: number): Observable<StaffMember>;
    /**
    * Method GetStaffByIds
    * @param id Id for Staff to retrieve
    * @return Full HTTP response as Observable
    */
    GetStaffByIds(id: number[]): Observable<StaffMember[]>;
    /**
    * Method GetStaffByRacfId
    * @param racfId RacfId for Staff to retrieve
    * @return Full HTTP response as Observable
    */
    GetStaffByRacfId(racfId: string): Observable<StaffMember>;
    /**
    * Method GetStaffByRacfIds
    * @param racfId RacfId for Staff to retrieve
    * @return Full HTTP response as Observable
    */
    GetStaffByRacfIds(racfId: number[]): Observable<StaffMember[]>;
    /**
    * Method SearchStaffBySearchCriteriaGet
    * @param racfId RacfId for Staff to retrieve
    * @param peopleFirstId The people first id to Search for
    * @param status The status code to search for
    * @param partialName The partial name to search for
    * @param firstName The first name to search for
    * @param lastName The last name to search for
    * @param districtCode The district to search for
    * @param positionNumber The position number to search for
    * @param organizationalCode The organization code to search for
    * @param emailAddress The email address to search for
    * @param staffTypeCode The staff type code to search for
    * @param staffId The staff id to search for
    * @return Full HTTP response as Observable
    */
    SearchStaffBySearchCriteriaGet(racfId: number[], peopleFirstId: string, status: string, partialName: string, firstName: string, lastName: string, districtCode: string, positionNumber: string, organizationalCode: string, emailAddress: string, staffTypeCode: string, staffId: string): Observable<StaffMember[]>;
    SearchActiveStaffByName(name: string): Observable<StaffMember[]>;
    /**
    * Method SearchStaffBySearchCriteriaPost
    * @param searchCriteria RacfId for Staff to retrieve
    * @return Full HTTP response as Observable
    */
    SearchStaffBySearchCriteriaPost(searchCriteria: SearchCriteria): Observable<HttpResponse<any>>;
    private sendRequest<T>(method, uri, headers, params, body);
}
