///
import React from 'react';
import { NodeID, AddressTree, AddressNode, AddressNodeSet, AddressDataset, NodeSelection, NodeIDStrict, NodeChain, NodeAnyValue, SelectionChain, AddressRequestParams } from './Types';
export interface AddressCompProps {
className?: string;
style?: object;
requestAddressUrl: string;
requestTownUrl: string;
requestAddressLevelUrl: string;
level: number;
hiddenData: NodeIDStrict[];
ignored: NodeIDStrict[];
disabled: boolean;
dataOverride: {
[key: string]: string[];
};
preprocessor: (dataRaw: object) => {
[key: string]: string[];
};
}
export interface AddressCompState {
paneRoot: AddressNode | null;
addressTree: AddressTree;
}
declare type AddressComp = React.Component;
export interface AddressCompE extends AddressComp {
allNodesSet: AddressNodeSet;
futureDatasetTem?: Promise;
}
export declare function getRequestParams(props: AddressCompProps): AddressRequestParams;
export declare function setStateAsync(self: AddressComp, updater: any): Promise;
export declare function loadAndStoreDataset(self: AddressComp, params?: AddressRequestParams): Promise<{
addressTree: any;
allNodesSet: any;
}>;
export declare function dataset(self: AddressComp, params?: AddressRequestParams): Promise;
export declare function selectNodeFromChain(node: AddressNode, chain: NodeID[]): AddressNode[];
export declare function nodeChainFromNode(node: AddressNode): NodeChain;
export declare function foldNodeChainToSelection(nodeChain: AddressNode[]): NodeSelection;
export declare function selectionToChain(value: NodeSelection): SelectionChain;
export declare function anyValueToSelectionId(val: NodeAnyValue): NodeIDStrict;
export declare const addressEqual: (lhs: NodeAnyValue, rhs: NodeAnyValue) => boolean;
export declare const CANNOT_REACH: any;
export declare function maybeGet(src: T | null | undefined): T;
export declare function selectionChainLastNonstrict(chain: SelectionChain): NodeID;
export declare function nodeChainLastIDNonstrict(chain: NodeChain): NodeID;
export declare const id: (v: any) => any;
export declare function getParentSetOf(node: AddressNode): Set;
export declare function isDescendantOfOne(allNodesSet: AddressNodeSet, childId: NodeIDStrict, parentIds: NodeIDStrict[]): boolean;
export declare const PROVINCE_LETTERS: string[];
export declare function provinceLetterParititon(namePy: string): number;
export declare function lastOr(src: T[], def: T): T;
export declare function selectionToId(src: SelectionChain): NodeIDStrict;
export declare function getLabelIntl(node: AddressNode): string;
export declare function getNodeLevelInTree(node: AddressNode): number;
export {};