import type { Filter, ResourcePage as Page, Params } from '../types';
import type { AssignLinodesToPlacementGroupPayload, CreatePlacementGroupPayload, PlacementGroup, UnassignLinodesFromPlacementGroupPayload, UpdatePlacementGroupPayload } from './types';
/**
 * getPlacementGroups
 *
 * Returns a paginated list of all Placement Groups which this customer has created.
 */
export declare const getPlacementGroups: (params?: Params, filter?: Filter) => Promise<Page<PlacementGroup>>;
/**
 * getPlacementGroup
 *
 * Get a single Placement Group.
 *
 * @param placementGroupId { number } The id of the Placement Group to be fetched.
 */
export declare const getPlacementGroup: (placementGroupId: number) => Promise<PlacementGroup>;
/**
 * createPlacementGroup
 *
 * Create a Placement Group.
 *
 * @param data { PlacementGroup } The data for the Placement Group.
 */
export declare const createPlacementGroup: (data: CreatePlacementGroupPayload) => Promise<PlacementGroup>;
/**
 * updatePlacementGroup
 *
 * Updates a Placement Group (updates label).
 *
 * @param placementGroupId { number } The id of the Placement Group to be updated.
 * @param data { PlacementGroup } The data for the Placement Group.
 */
export declare const updatePlacementGroup: (placementGroupId: number, data: UpdatePlacementGroupPayload) => Promise<PlacementGroup>;
/**
 * deletePlacementGroup
 *
 * Delete a Placement Group.
 *
 * @param placementGroupId { number } The id of the Placement Group to be deleted.
 */
export declare const deletePlacementGroup: (placementGroupId: number) => Promise<{}>;
/**
 * assignVmsToPlacementGroup
 *
 * Assign Linodes to a Placement Group.
 *
 * @param placementGroupId { number } The id of the Placement Group to add linodes to.
 * @param linodeIds { number[] } The ids of the Linodes to add to the Placement Group.
 *
 * @note While this accepts an array of Linode ids (future proofing), only one Linode id is supported at this time.
 */
export declare const assignLinodesToPlacementGroup: (placementGroupId: number, payload: AssignLinodesToPlacementGroupPayload) => Promise<PlacementGroup>;
/**
 * unassignVmsFromPlacementGroup
 *
 * Unassign Linodes from a Placement Group.
 *
 * @param placementGroupId { number } The id of the Placement Group to remove linodes from.
 * @param linodeIds { number[] } The ids of the Linodes to remove from the Placement Group.
 *
 * @note While this accepts an array of Linode ids (future proofing), only one Linode id is supported at this time.
 */
export declare const unassignLinodesFromPlacementGroup: (placementGroupId: number, payload: UnassignLinodesFromPlacementGroupPayload) => Promise<PlacementGroup>;
//# sourceMappingURL=placement-groups.d.ts.map