import * as solid_js from 'solid-js';
import { isCityCached, clearCache } from '../zip6/loader.js';

interface SearchResult {
    city: string;
    area: string;
    road: string;
}
interface Zip6Result {
    zipcode: string;
    zip3: string;
    city: string;
    area: string;
    road: string;
}
interface UseTwZip6Options {
    baseUrl?: string;
    preload?: string[];
}
declare function useTwZip6(options?: UseTwZip6Options): {
    loading: solid_js.Accessor<boolean>;
    cities: solid_js.Accessor<string[]>;
    areas: solid_js.Accessor<string[]>;
    roads: solid_js.Accessor<string[]>;
    city: solid_js.Accessor<string>;
    area: solid_js.Accessor<string>;
    road: solid_js.Accessor<string>;
    number: solid_js.Accessor<number | undefined>;
    lane: solid_js.Accessor<number | undefined>;
    alley: solid_js.Accessor<number | undefined>;
    setCity: (value: string) => Promise<void>;
    setArea: (value: string) => void;
    setRoad: (value: string) => void;
    setNumber: solid_js.Setter<number | undefined>;
    setLane: solid_js.Setter<number | undefined>;
    setAlley: solid_js.Setter<number | undefined>;
    searchRoads: (keyword: string) => void;
    searchResults: solid_js.Accessor<SearchResult[]>;
    zipCode: solid_js.Accessor<string>;
    zip3: solid_js.Accessor<string>;
    result: solid_js.Accessor<Zip6Result | undefined>;
    preloadCities: (citiesToPreload: string[]) => Promise<void>;
    isCityCached: typeof isCityCached;
    clearCache: typeof clearCache;
};

export { type SearchResult, type UseTwZip6Options, type Zip6Result, clearCache, useTwZip6 as default, isCityCached, useTwZip6 };
