import { Filter, ResourcePage as Page, Params } from '../types';
import { Config, ConfigInterfaceOrderPayload, Interface, InterfacePayload, LinodeConfigCreationData, UpdateConfigInterfacePayload } from './types';
/**
 * getLinodeConfigs
 *
 * Lists Configuration profiles associated with the specified Linode.
 *
 * @param linodeId { number } The id of the Linode to list configs for.
 * @todo VolumeAttachmentDrawer, ConfigSelect, and LinodeConfigs all make use of this still, and probably shouldnt.
 */
export declare const getLinodeConfigs: (linodeId: number, params?: Params, filters?: Filter) => Promise<Page<Config>>;
/**
 * getLinodeConfig
 *
 * Returns information about a single Linode configuration.
 *
 * @param linodeId { number } The id of a Linode the specified config is attached to.
 * @param configId { number } The id of the config to be returned
 */
export declare const getLinodeConfig: (linodeId: number, configId: number) => Promise<Config>;
/**
 * createLinodeConfig
 *
 * Adds a new Configuration profile to a Linode.
 *
 * @param linodeId { number } The id of a Linode to receive the new config.
 */
export declare const createLinodeConfig: (linodeId: number, data: LinodeConfigCreationData) => Promise<Config>;
/**
 * deleteLinodeConfig
 *
 * Delete a single configuration profile from a Linode.
 *
 * @param linodeId { number } The id of a Linode the specified config is attached to.
 * @param configId { number } The id of the config to be deleted
 */
export declare const deleteLinodeConfig: (linodeId: number, configId: number) => Promise<{}>;
/**
 * updateLinodeConfig
 *
 * Update a configuration profile.
 * Interfaces field must be omitted or null if Linode is using new Linode Interfaces.
 *
 * @param linodeId { number } The id of a Linode the specified config is attached to.
 * @param configId { number } The id of the config to be updated.
 */
export declare const updateLinodeConfig: (linodeId: number, configId: number, data: Partial<LinodeConfigCreationData>) => Promise<Config>;
/**
 * getConfigInterfaces
 *
 * Return non-paginated list in devnum order of all interfaces on the given config.
 *
 * @param linodeId { number } The id of a Linode.
 * @param configId { number } The id of a config belonging to the specified Linode.
 */
export declare const getConfigInterfaces: (linodeId: number, configId: number) => Promise<Interface[]>;
/**
 * getConfigInterface
 *
 * Get a single Linode config interface object using the interface's unique ID.
 *
 * @param linodeId { number } The id of a Linode.
 * @param configId { number } The id of a config belonging to the specified Linode.
 * @param interfaceId { number } The id of an interface belonging to the specified config.
 */
export declare const getConfigInterface: (linodeId: number, configId: number, interfaceId: number) => Promise<Interface>;
/**
 * appendConfigInterface
 *
 * Append a single new Linode config interface object to an existing config.
 * Cannot be used for Linodes using the new Linode Interfaces.
 *
 * @param linodeId { number } The id of a Linode to receive the new config interface.
 * @param configId { number } The id of a config to receive the new interface.
 */
export declare const appendConfigInterface: (linodeId: number, configId: number, data: InterfacePayload) => Promise<Interface>;
/**
 * updateConfigInterface
 *
 * Change an existing interface.
 *
 * @param linodeId { number } The id of a Linode.
 * @param configId { number } The id of a config belonging to that Linode.
 * @param interfaceId { number } The id of an interface belonging to the specified config.
 */
export declare const updateConfigInterface: (linodeId: number, configId: number, interfaceId: number, data: UpdateConfigInterfacePayload) => Promise<Interface>;
/**
 * updateLinodeConfigOrder
 *
 * Change the order of interfaces.
 *
 * @param linodeId { number } The id of a Linode.
 * @param configId { number } The id of a config belonging to the specified Linode.
 */
export declare const updateLinodeConfigOrder: (linodeId: number, configId: number, data: ConfigInterfaceOrderPayload) => Promise<{}>;
/**
 * deleteLinodeConfigInterface
 *
 * Delete a Linode config interface.
 *
 * @param linodeId { number } The id of a Linode the specified config is attached to.
 * @param configId { number } The id of a config belonging to the specified Linode.
 * @param interfaceId { number } The id of the interface to be deleted.
 */
export declare const deleteLinodeConfigInterface: (linodeId: number, configId: number, interfaceId: number) => Promise<{}>;
//# sourceMappingURL=configs.d.ts.map