import type { Address, LookupOptions, ValidationResult } from './types.js';
export { isValidPostcodeFormat, normalizePostcode, parseHuisnummer } from './format.js';
export type { Address, LookupOptions, ValidationResult } from './types.js';
export interface ValidatorOptions {
    /**
     * Override the bundled data directory. Intended for tests and forks;
     * production users should rely on the default (data shipped with the package).
     */
    dataDir?: string;
}
/**
 * Postcode-level validator backed by JSON shards bundled inside the npm package.
 * Requires no setup, no environment variables, and no network access. Works
 * on local Node, Vercel/AWS Lambda serverless, and anywhere Node >=20 runs.
 */
export declare class PostcodeValidator {
    private readonly loader;
    constructor(options?: ValidatorOptions);
    /** Number of postcodes in the bundled dataset. Reads `manifest.json` once. */
    count(): number;
    /** Version tag of the bundled dataset, or `null` if no manifest is present. */
    dataVersion(): string | null;
    /**
     * Look up the address for a postcode. Returns an array (0 or 1 entries)
     * to preserve the v0.x signature; `huisnummer` and lookup options are
     * accepted but ignored at the postcode level.
     */
    lookup(postcode: string, _huisnummer?: number | string, _options?: LookupOptions): Address[];
    /**
     * Exact single-result variant of {@link lookup}. Returns `null` when the
     * postcode is unknown or malformed.
     */
    findExact(postcode: string, _huisnummer?: number | string, _options?: LookupOptions): Address | null;
    /** Cheap boolean existence check. */
    exists(postcode: string): boolean;
    /**
     * Validate a postcode. The optional `huisnummer` is accepted for
     * backwards compatibility with the v0.x SQLite-backed API; it is
     * ignored beyond a malformedness check.
     */
    validate(postcode: string, huisnummer?: number | string, _options?: LookupOptions): ValidationResult;
    /**
     * Retained for API compatibility with the v0.x SQLite-backed validator.
     * There is no open handle to close in this implementation.
     */
    close(): void;
}
/**
 * Convenience factory for {@link PostcodeValidator}. Accepts no required
 * arguments: `createValidator()` is enough.
 */
export declare function createValidator(options?: ValidatorOptions): PostcodeValidator;
//# sourceMappingURL=index.d.ts.map