type PlaceProps = {
    municipality?: string;
    location?: string;
    post_code?: string | number;
    region?: string;
};
type SearchCriteriaProps = {
    search?: string | number;
    limit?: number;
};
type PlaceListCriteriaProps = PlaceProps & {
    limit?: number;
};

declare function usePostalPH(): {
    fetchMunicipalities: ({ search, limit }?: SearchCriteriaProps) => {
        data: PlaceProps[];
        count: number;
    } | {
        data: string[];
        count: number;
    } | undefined;
    fetchPostCodes: ({ search, limit }?: SearchCriteriaProps) => PlaceProps | {
        data: number[];
        count: number;
    } | undefined;
    fetchLocations: ({ search, limit }?: SearchCriteriaProps) => {
        data: PlaceProps[];
        count: number;
    } | {
        data: string[];
        count: number;
    } | undefined;
    fetchRegions: ({ search, limit }?: SearchCriteriaProps) => {
        data: PlaceProps[];
        count: number;
    } | {
        data: string[];
        count: number;
    } | undefined;
    fetchDataLists: ({ municipality, post_code, region, location, limit }?: PlaceListCriteriaProps) => {
        data: PlaceProps[];
        count: number;
    };
};

export { type PlaceListCriteriaProps, type PlaceProps, type SearchCriteriaProps, usePostalPH as default };
