/// <reference path="src/index.d.ts" />
import Controller from './Controller';
export default class ClientSearch extends Controller implements ClientSearchBase {
    protected option: IOptions;
    params: HouseListParams;
    currentGeoLocation?: IGeolocationParams;
    houseList: IHouseDetail[];
    mapHouseList: IHouseDetail[];
    recommendHouseList: IHouseDetail[];
    geoLocationCityName: string;
    mapCoord: IGeolocationParams | null;
    hasNext: boolean;
    inputKeywork: string;
    readonly houseListIsEmpty: number;
    constructor(option: IOptions);
    setCurrentGeoLocation(geo: ILocationBaseParams): Promise<void>;
    onInputKeyword(keyword: string): Promise<[Array<IAmapTips | null>, IHouseDetail[], IApiListResponse<IHouseDetail>]>;
    searchByGeolocation(params: IGeolocationParams): Promise<IHouseDetail[]>;
    searchByKeyword(keyword: string): Promise<IHouseDetail[]>;
    searchByDate(date: IDateParams): Promise<IHouseDetail[]>;
    searchByFilter(filterCondition: IFilterParams, byMap?: boolean): Promise<IHouseDetail[]>;
    searchByLocation(locationParams: ILocationParams, byMap?: boolean): Promise<IHouseDetail[]>;
    searchBySort(sortParams: ISortParams): Promise<IHouseDetail[]>;
    searchByCity(cityParams: ICityParams): Promise<IHouseDetail[]>;
    searchByAreaCode(areaCode: string, byMap?: boolean): Promise<IHouseDetail[]>;
    immediatelySearchByAreaCode(areaCode: string, byMap?: boolean): Promise<IHouseDetail[]>;
    searchMap(): Promise<[IGeolocationParams | null, IHouseDetail[]]>;
    searchMapWithCoord(coord: ILocationBaseParams): Promise<[ILocationBaseParams | null, IHouseDetail[]]>;
    searchByTagIds(bizTagIds: string, params: HouseListParams): Promise<IHouseDetail[]>;
    loadDataByPageNum(pageNum: number): Promise<IHouseDetail[]>;
    loadNextPageData(): Promise<IHouseDetail[]> | undefined;
    loadFirstPageData(): Promise<IHouseDetail[]>;
    private searchRecommendHouses;
    private getCoordCityName;
    private clearParams;
    private clearFilter;
}
