import type { ControllerResponse } from "../../shared/types/common.types.js";
import type { AddContributorsToolArgsType, GetContributorToolArgsType, GetCurrentUserToolArgsType, ListContributorsToolArgsType, RemoveContributorToolArgsType, UpdateContributorToolArgsType } from "./contributors.types.js";
/**
 * @namespace ContributorsController
 * @description Controller responsible for handling Lokalise Contributors API operations.
 *              It orchestrates calls to the contributors service, applies defaults,
 *              maps options, and formats the response using the formatter.
 */
/**
 * @function listContributors
 * @description Fetches a list of contributors from a Lokalise project.
 * @memberof ContributorsController
 * @param {ListContributorsToolArgsType} args - Arguments containing project ID and pagination options
 * @returns {Promise<ControllerResponse>} A promise that resolves to the standard controller response containing the formatted contributors list in Markdown.
 * @throws {McpError} Throws an McpError (handled by `handleControllerError`) if the service call fails or returns an error.
 */
declare function listContributors(args: ListContributorsToolArgsType): Promise<ControllerResponse>;
/**
 * @function getContributor
 * @description Fetches details of a specific contributor.
 * @memberof ContributorsController
 * @param {GetContributorToolArgsType} args - Arguments containing project ID and contributor ID
 * @returns {Promise<ControllerResponse>} A promise that resolves to the formatted contributor details.
 * @throws {McpError} Throws an McpError if the service call fails.
 */
declare function getContributor(args: GetContributorToolArgsType): Promise<ControllerResponse>;
/**
 * @function addContributors
 * @description Adds one or more contributors to a project.
 * @memberof ContributorsController
 * @param {AddContributorsToolArgsType} args - Arguments containing project ID and contributor data
 * @returns {Promise<ControllerResponse>} A promise that resolves to the formatted result.
 * @throws {McpError} Throws an McpError if the service call fails.
 */
declare function addContributors(args: AddContributorsToolArgsType): Promise<ControllerResponse>;
/**
 * @function getCurrentUser
 * @description Gets the current user's contributor profile for a project.
 * @memberof ContributorsController
 * @param {GetCurrentUserToolArgsType} args - Arguments containing project ID
 * @returns {Promise<ControllerResponse>} A promise that resolves to the formatted current user details.
 * @throws {McpError} Throws an McpError if the service call fails.
 */
declare function getCurrentUser(args: GetCurrentUserToolArgsType): Promise<ControllerResponse>;
/**
 * @function updateContributor
 * @description Updates a contributor's permissions in a project.
 * @memberof ContributorsController
 * @param {UpdateContributorToolArgsType} args - Arguments containing project ID, contributor ID and update data
 * @returns {Promise<ControllerResponse>} A promise that resolves to the formatted update result.
 * @throws {McpError} Throws an McpError if the service call fails.
 */
declare function updateContributor(args: UpdateContributorToolArgsType): Promise<ControllerResponse>;
/**
 * @function removeContributor
 * @description Removes a contributor from a project.
 * @memberof ContributorsController
 * @param {RemoveContributorToolArgsType} args - Arguments containing project ID and contributor ID
 * @returns {Promise<ControllerResponse>} A promise that resolves to the formatted deletion result.
 * @throws {McpError} Throws an McpError if the service call fails.
 */
declare function removeContributor(args: RemoveContributorToolArgsType): Promise<ControllerResponse>;
/**
 * Export the controller functions
 */
declare const contributorsController: {
    listContributors: typeof listContributors;
    getContributor: typeof getContributor;
    addContributors: typeof addContributors;
    getCurrentUser: typeof getCurrentUser;
    updateContributor: typeof updateContributor;
    removeContributor: typeof removeContributor;
};
export default contributorsController;
