/**
 * Areas Border API Types
 *
 * /api/areas/border/{targetType}/{targetCode}/{sourceType} endpoint
 */
import { GeographicEntityResponse } from './common';
import { GeographicEntityType } from '../../common';
/**
 * Border endpoint path parameters
 */
export interface BorderPathParams {
    /**
     * Target entity type for border areas
     */
    targetType: GeographicEntityType;
    /**
     * Target entity code
     */
    targetCode: string;
    /**
     * Source entity type
     */
    sourceType: GeographicEntityType;
}
/**
 * Border endpoint query parameters
 */
export interface BorderQueryParams {
    /**
     * Maximum number of results
     */
    limit?: number;
    /**
     * Maximum distance for border search
     */
    maxDistance?: number;
    /**
     * Include full geometry in response
     */
    includeGeometry?: boolean;
}
/**
 * Border relationship details
 */
export interface BorderRelationship {
    /**
     * Whether areas share a boundary
     */
    touches_boundary: boolean;
    /**
     * Distance between areas
     */
    distance: number;
    /**
     * Distance in meters
     */
    distance_meters: number;
    /**
     * Percentage of overlap
     */
    overlap_percentage: number;
    /**
     * Human-readable description
     */
    description: string;
}
/**
 * Border endpoint response
 */
export interface BorderResponse {
    /**
     * Success flag
     */
    success: boolean;
    /**
     * Border query result
     */
    result: {
        /**
         * Target entity information
         */
        target: {
            code: string;
            name: string;
            type: string;
        };
        /**
         * Source entity type
         */
        sourceType: string;
        /**
         * Array of bordering areas with relationship details
         */
        areas: Array<GeographicEntityResponse & {
            relationship: BorderRelationship;
        }>;
        /**
         * Count of bordering areas
         */
        count: number;
    };
}
