import { AnyAddress, GbrAddress } from "./types"; import { SelectorNode, Targets, OutputFields, UsaOutputFields, LineCount, NamedFields } from "./types"; export declare const numberOfLines: (targets: Targets) => LineCount; export declare const join: (list: (string | unknown)[]) => string; export declare const charArrayLength: (arr: string[]) => number; interface MaxLengthOptions extends MaxLineConfig { lineCount: number; } export declare const toMaxLengthLines: (l: string[], options: MaxLengthOptions) => [string, string, string]; export type MaxLengths = [number?, number?, number?]; interface MaxLengthOptions { } export declare const toAddressLines: (lineCount: LineCount, address: AnyAddress, options: MaxLineConfig) => [string, string, string]; type KeysOfUnion = T extends unknown ? keyof T : never; export declare const extract: (a: AnyAddress, attr: KeysOfUnion) => string; export declare const getFields: (o: PopulateAddressOptions) => OutputFields; export interface MaxLineConfig { lines?: LineCount; maxLineOne?: number; maxLineTwo?: number; maxLineThree?: number; } export interface PopulateConfig extends MaxLineConfig { scope: HTMLElement | Document; removeOrganisation?: boolean; populateCounty?: boolean; } export interface PopulateAddressOptions { outputFields: OutputFields; names?: NamedFields; labels?: NamedFields; address: AnyAddress; config: PopulateConfig; } export interface MutateConfig extends MaxLineConfig, Pick { populateCounty?: boolean; } interface PopulateAddress { (options: PopulateAddressOptions): void; } export declare const searchFields: (outputFields: OutputFields, scope: HTMLElement | Document) => OutputFields; export declare const searchNames: (names: NamedFields, scope: HTMLElement | Document) => OutputFields; export declare const searchLabels: (labels: NamedFields, scope: HTMLElement | Document) => OutputFields; interface MutateAddress { (address: AnyAddress, config: MutateConfig): AnyAddress; } export declare const mutateAddress: MutateAddress; export declare const populateAddress: PopulateAddress; export declare const removeOrganisation: (address: GbrAddress) => GbrAddress; export declare const getCountyIsoSelector: (a: OutputFields | UsaOutputFields) => SelectorNode | null; export declare const getCountySelector: (a: OutputFields | UsaOutputFields) => SelectorNode | null; export declare const getCountyIso: (a: AnyAddress) => string; export declare const getCounty: (a: AnyAddress) => string; export {};