export type PadsData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * List of pad IDs to filter by
         */
        ids?: unknown;
        /**
         * Search by Company ID
         */
        company?: number;
        /**
         * Search by Program ID
         */
        program?: number;
        /**
         * Search by Frac Fleet ID
         */
        frac_fleet?: number;
        /**
         * Search by Frac Fleet ID where it is the current Frac Fleet on the Pad
         */
        current_frac_fleet?: number;
        /**
         * Search by Drillout Unit ID
         */
        drillout_unit?: number;
        /**
         * Search by pad name
         */
        search?: string;
        /**
         * Respond with only the given list of fields, like pad.name
         */
        fields?: unknown;
        /**
         * Return records that have an active well
         */
        active?: boolean;
        /**
         * Return records that are current based on PadFracFleet
         */
        current?: boolean;
        /**
         * Return records where last_active_at is smaller than the given timestamp
         */
        active_before?: unknown;
        /**
         * Return records where last_active_at is greater than the given timestamp
         */
        active_after?: unknown;
        /**
         * Latitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.
         */
        lat_start?: unknown;
        /**
         * Latitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.
         */
        lat_end?: unknown;
        /**
         * Longitude start. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.
         */
        long_start?: unknown;
        /**
         * Longitude end. Requires all parameters: lat_start, lat_end, long_start and long_end to be defined.
         */
        long_end?: unknown;
        /**
         * Filter by array of well ids
         */
        well_ids?: unknown;
        /**
         * Page number for pagination
         */
        page?: number;
        /**
         * Number of pads to list per page
         */
        per_page?: number;
        /**
         * One or more fields to sort by. Prefix with a - for descending order. Ex: company,name
         */
        sort?: 'name' | 'company' | 'program' | 'drillout_unit' | 'last_active_at';
        /**
         * A sorting direction
         */
        order?: 'asc' | 'desc';
    };
    url: '/v2/pads';
};
export type PadFromApi = {
    id: string;
    attributes: {
        id: string;
        name: string;
        current_frac_fleet_id?: number;
        last_active_at?: string;
        active?: boolean;
        parent_frac_fleet_id?: number;
        current?: boolean;
        basin: string | null;
        county: string | null;
    };
    type: 'pad';
    relationships?: {
        company?: {
            data?: {
                id: string;
                type: string;
            };
        };
        program?: {
            data?: {
                id: string;
                type: string;
            };
        };
        drillout_unit?: {
            data?: {
                id?: string;
                type?: string;
            };
        };
        pad_frac_fleets?: {
            data?: Array<{
                id: string;
            }>;
        };
        wells?: {
            data?: Array<{
                id: string;
                type: string;
            }>;
        };
        active_wells?: {
            data?: Array<unknown>;
        };
    };
};
export type PadProgramIncluded = {
    type: 'program';
    id: string;
    attributes: {
        name: string;
        frac_fleet: {
            id: number;
            name: string;
        };
    };
};
export type PadWellIncluded = {
    type: 'well';
    id: string;
    attributes: {
        asset_id: number;
        name: string;
        status: string;
        target_formation: string | null;
        frac_fleet: {
            id: number;
            name: string;
        };
        lon_lat: {
            latitude: number;
            longitude: number;
        };
        stats: {
            total_depth: number;
            well_end?: number;
        };
        custom_properties?: {
            color: string;
        };
    };
};
export type PadFracFleetIncluded = {
    type: 'pad_frac_fleet';
    id: string;
    relationships: {
        frac_fleet_lines: {
            data: {
                id: string;
                type: 'frac_fleet_line';
            }[];
        };
    };
    attributes: {
        current: boolean;
        name: string;
        frac_fleet: {
            id: number;
            name: string;
        };
    };
};
export type PadIncluded = PadProgramIncluded | PadWellIncluded | PadFracFleetIncluded;
export type PadsResponses = {
    /**
     * List pads
     */
    200: {
        data: PadFromApi[];
        included: PadIncluded[];
    };
};
export type PadsResponse = PadsResponses[keyof PadsResponses];
export type AuthenticationError = {
    code: number;
    message: string;
};
export type AuthorizationError = {
    code: number;
    message: string;
};
export type NotFoundError = {
    code: number;
    message: string;
};
export type ApiError = AuthorizationError | NotFoundError | AuthenticationError | null;
type Nullable<T> = T | null;
export type DeserializedWellRig = {
    id: number;
    name: string;
    created_at: string;
    updated_at: string;
    company_id: number;
    program_id: Nullable<number>;
    asset_id: number;
    active_well_id: Nullable<number>;
    lon_lat: Nullable<{
        longitude: number;
        latitude: number;
    }>;
    last_active_at: Nullable<string>;
    visibility: string;
    last_active_well_id: Nullable<number>;
    settings: Record<string, unknown>;
    edr_provider: Nullable<string>;
};
export type DeserializedWellStats = {
    well_end: number;
    total_cost: number;
    total_time: number;
    well_start: number;
    total_depth: number;
    first_active_at: number;
    witsml_data_frequency: Nullable<string>;
};
export type DeserializedPadWell = {
    type: 'well';
    id: string;
    name: string;
    identifier: Nullable<string>;
    lon_lat: {
        longitude: number;
        latitude: number;
    };
    status: string;
    stats: DeserializedWellStats;
    visibility: string;
    asset_id: number;
    rig: DeserializedWellRig;
    last_active_at: Nullable<string>;
    custom_properties: {
        billing?: string;
        is_asset_viewer?: boolean;
        [key: string]: unknown;
    };
    target_formation: Nullable<string>;
};
export type DeserializedFracFleet = {
    id: number;
    name: string;
    created_at: string;
    updated_at: string;
    company_id: number;
    program_id: Nullable<number>;
    lon_lat: Nullable<{
        longitude: number;
        latitude: number;
    }>;
    frac_fleet_vendor: Nullable<string>;
    last_active_at: Nullable<string>;
};
export type DeserializedPadInFracFleet = {
    id: number;
    name: string;
    created_at: string;
    updated_at: string;
    company_id: number;
    program_id: Nullable<number>;
    lon_lat: {
        longitude: number;
        latitude: number;
    };
    drillout_unit_id: Nullable<number>;
    last_active_at: Nullable<string>;
    viewer_well_id: Nullable<number>;
};
export type DeserializedPadFracFleet = {
    type: 'pad_frac_fleet';
    id: number;
    current: boolean;
    last_current_at: Nullable<string>;
    created_at: string;
    updated_at: string;
    pad: DeserializedPadInFracFleet;
    frac_fleet: DeserializedFracFleet;
    contract_data: Record<string, unknown>;
    frac_fleet_lines: Array<{
        id: string;
        type: 'frac_fleet_line';
    }>;
    relationshipNames?: string[];
};
export type DeserializedPad = {
    type: 'pad';
    id: string;
    name: string;
    current_frac_fleet_id: Nullable<number>;
    pad_frac_fleets?: DeserializedPadFracFleet[];
    wells?: DeserializedPadWell[];
    relationshipNames?: string[];
};
export {};
//# sourceMappingURL=PadsApi.d.ts.map