import * as svelte_store from 'svelte/store';
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 CreateTwZip6Options {
    baseUrl?: string;
    preload?: string[];
}
declare function createTwZip6(options?: CreateTwZip6Options): {
    loading: {
        subscribe: (this: void, run: svelte_store.Subscriber<boolean>, invalidate?: () => void) => svelte_store.Unsubscriber;
    };
    cities: {
        subscribe: (this: void, run: svelte_store.Subscriber<string[]>, invalidate?: () => void) => svelte_store.Unsubscriber;
    };
    areas: {
        subscribe: (this: void, run: svelte_store.Subscriber<string[]>, invalidate?: () => void) => svelte_store.Unsubscriber;
    };
    roads: {
        subscribe: (this: void, run: svelte_store.Subscriber<string[]>, invalidate?: () => void) => svelte_store.Unsubscriber;
    };
    city: {
        subscribe: (this: void, run: svelte_store.Subscriber<string>, invalidate?: () => void) => svelte_store.Unsubscriber;
    };
    area: {
        subscribe: (this: void, run: svelte_store.Subscriber<string>, invalidate?: () => void) => svelte_store.Unsubscriber;
    };
    road: {
        subscribe: (this: void, run: svelte_store.Subscriber<string>, invalidate?: () => void) => svelte_store.Unsubscriber;
    };
    number: {
        subscribe: (this: void, run: svelte_store.Subscriber<number | undefined>, invalidate?: () => void) => svelte_store.Unsubscriber;
    };
    lane: {
        subscribe: (this: void, run: svelte_store.Subscriber<number | undefined>, invalidate?: () => void) => svelte_store.Unsubscriber;
    };
    alley: {
        subscribe: (this: void, run: svelte_store.Subscriber<number | undefined>, invalidate?: () => void) => svelte_store.Unsubscriber;
    };
    setCity: (value: string) => Promise<void>;
    setArea: (value: string) => void;
    setRoad: (value: string) => void;
    setNumber: (value: number | undefined) => void;
    setLane: (value: number | undefined) => void;
    setAlley: (value: number | undefined) => void;
    searchRoads: (keyword: string) => void;
    searchResults: {
        subscribe: (this: void, run: svelte_store.Subscriber<SearchResult[]>, invalidate?: () => void) => svelte_store.Unsubscriber;
    };
    zipCode: svelte_store.Readable<string>;
    zip3: svelte_store.Readable<string>;
    result: svelte_store.Readable<Zip6Result | undefined>;
    preloadCities: (citiesToPreload: string[]) => Promise<void>;
    isCityCached: typeof isCityCached;
    clearCache: typeof clearCache;
};

export { type CreateTwZip6Options, type SearchResult, type Zip6Result, clearCache, createTwZip6, createTwZip6 as default, isCityCached };
