export type PostcodeLookupConfiguration = {
    ordnanceSurveyApiKey: string;
};
export type PostcodeLookupDispatchArgs = {
    name: string;
    step?: string;
};
export type PostcodeLookupDispatchData = {
    sourceUrl: string;
    formName: string;
    componentName: string;
    componentTitle: string;
    componentHint?: string;
    step?: string;
};
export type PostcodeLookupSessionData = {
    initial: PostcodeLookupDispatchData;
    details: PostcodeLookupDetailsData;
};
/**
 * The postcode lookup details form view model data
 */
export type PostcodeLookupDetailsData = {
    /**
     * - postcode query
     */
    postcodeQuery: string;
    /**
     * - Building name or number query
     */
    buildingNameQuery: string;
};
/**
 * Postcode lookup query params
 */
export type PostcodeLookupQuery = {
    /**
     * - step
     */
    step?: string | undefined;
};
export type PostcodeLookupDetailsPayloadProperties = {
    /**
     * - step
     */
    step: string;
};
export type PostcodeLookupDetailsPayload = PostcodeLookupDetailsData & PostcodeLookupDetailsPayloadProperties;
export type PostcodeLookupSelectPayload = {
    /**
     * - step
     */
    step: string;
    /**
     * - postcode
     */
    uprn: string;
};
/**
 * Postcode lookup get request
 */
export type PostcodeLookupGetRequestRefs = {
    /**
     * - Request query
     */
    Query: PostcodeLookupQuery;
};
/**
 * Postcode lookup post request
 */
export type PostcodeLookupPostRequestRefs = {
    /**
     * - Request payload
     */
    Payload: PostcodeLookupDetailsPayload | PostcodeLookupSelectPayload;
};
export type PostcodeLookupRequestRefs = PostcodeLookupGetRequestRefs | PostcodeLookupPostRequestRefs;
export type PostcodeLookupGetRequest = Request<PostcodeLookupGetRequestRefs>;
export type PostcodeLookupPostRequest = Request<PostcodeLookupPostRequestRefs>;
export type PostcodeLookupRequest = PostcodeLookupGetRequest | PostcodeLookupPostRequest;
export type PostcodeLookupManualPayload = {
    /**
     * - The address line 1
     */
    addressLine1: string;
    /**
     * - The address line 2
     */
    addressLine2: string;
    /**
     * - The address town or city
     */
    town: string;
    /**
     * - The address county
     */
    county: string;
    /**
     * - The address postcode
     */
    postcode: string;
};
export type Address = {
    /**
     * - The unique property reference
     */
    uprn: string;
    /**
     * - The full address
     */
    address: string;
    /**
     * - Address line 1
     */
    addressLine1: string;
    /**
     * - Address line 2
     */
    addressLine2: string;
    /**
     * - Address town
     */
    town: string;
    /**
     * - Address county
     */
    county: string;
    /**
     * - Address postcode
     */
    postcode: string;
    /**
     * - The full formatted address
     */
    formatted: string;
};
/**
 * OS places address response
 */
export type DeliveryPointAddress = {
    /**
     * - Unique property reference number
     */
    UPRN: string;
    /**
     * - Unique delivery point Reference Number
     */
    UDPRN: string;
    /**
     * - Address
     */
    ADDRESS: string;
    /**
     * - Organisation name
     */
    ORGANISATION_NAME: string;
    /**
     * - Sub building name
     */
    SUB_BUILDING_NAME: string;
    /**
     * - Building name
     */
    BUILDING_NAME: string;
    /**
     * - Building number
     */
    BUILDING_NUMBER: string;
    /**
     * - Throughfare name
     */
    THOROUGHFARE_NAME: string;
    /**
     * - Dependent locality
     */
    DEPENDENT_LOCALITY: string;
    /**
     * - Post town
     */
    POST_TOWN: string;
    /**
     * - Postcode
     */
    POSTCODE: string;
};
/**
 * OS places DPA response
 */
export type DeliveryPointAddressItem = {
    /**
     * - Delivery point address
     */
    DPA: DeliveryPointAddress;
};
/**
 * OS places DPA response
 */
export type DeliveryPointAddressResult = {
    /**
     * - Delivery point address results
     */
    results?: DeliveryPointAddressItem[] | undefined;
};
import type { Request } from '@hapi/hapi';
