/**
 * Areas Children API Types
 *
 * /api/areas/children/{parentCode}/{childType?} endpoint
 */
import { GeographicEntityResponse } from './common';
import { GeographicEntityType } from '../../common';
/**
 * Children endpoint path parameters
 */
export interface ChildrenPathParams {
    /**
     * Parent entity code
     */
    parentCode: string;
    /**
     * Type of child entities to retrieve (optional)
     */
    childType?: GeographicEntityType;
}
/**
 * Children endpoint query parameters
 */
export interface ChildrenQueryParams {
    /**
     * Maximum number of results
     */
    limit?: number;
    /**
     * Result offset for pagination
     */
    offset?: number;
    /**
     * Include intersection relationships
     */
    includeIntersections?: boolean;
    /**
     * Include coverage information
     */
    includeCoverage?: boolean;
    /**
     * Include hierarchy information
     */
    includeHierarchy?: boolean;
    /**
     * Include full geometry in response
     */
    includeGeometry?: boolean;
    /**
     * Entity status filter
     */
    status?: string;
}
/**
 * Child relationship details
 */
export interface ChildRelationship {
    /**
     * Type of relationship (contains, intersects, etc.)
     */
    relationshipType?: string;
    /**
     * Coverage percentage
     */
    coveragePercent?: number;
}
/**
 * Children endpoint response
 */
export interface ChildrenResponse {
    /**
     * Success flag
     */
    success: boolean;
    /**
     * Children query result
     */
    result: {
        /**
         * Parent entity information
         */
        parent: {
            code: string;
            name: string;
            type: string;
        };
        /**
         * Type of child entities
         */
        childType?: string;
        /**
         * Array of child entities with relationship details
         */
        children: Array<GeographicEntityResponse & ChildRelationship>;
        /**
         * Total count of children
         */
        total: number;
        /**
         * Current limit
         */
        limit?: number;
        /**
         * Current offset
         */
        offset?: number;
        /**
         * Whether intersections are included
         */
        includeIntersections?: boolean;
        /**
         * Whether coverage information is included
         */
        includeCoverage?: boolean;
    };
}
