import type { BulkResult, CursorPaginatedResult, Key, KeyDeleted, KeysBulkDeleted, SupportedPlatforms } from "@lokalise/node-api";
import type { ApiRequestOptions } from "../../shared/types/common.types.js";
/**
 * @namespace VendorLokaliseKeysService
 * @description Service layer for interacting with Lokalise Keys API endpoints.
 *              Uses the official Lokalise SDK for reliable API communication.
 */
/**
 * Parameters for listing keys in a project
 */
export interface KeyListParams extends ApiRequestOptions {
    project_id: string;
    include_translations?: boolean;
    filter_keys?: string[];
    filter_platforms?: string[];
    filter_tags?: string[];
    pagination?: "offset" | "cursor";
    cursor?: string;
}
/**
 * Parameters for creating keys in a project
 */
export interface CreateKeysParams {
    project_id: string;
    keys: Array<{
        key_name: string;
        description?: string;
        platforms: SupportedPlatforms[];
        translations?: Array<{
            language_iso: string;
            translation: string;
        }>;
        tags?: string[];
    }>;
}
/**
 * Parameters for getting a single key
 */
export interface GetKeyParams {
    project_id: string;
    key_id: number;
}
/**
 * Parameters for updating a key
 */
export interface UpdateKeyParams {
    project_id: string;
    key_id: number;
    description?: string;
    platforms?: SupportedPlatforms[];
    tags?: string[];
}
/**
 * Parameters for deleting a key
 */
export interface DeleteKeyParams {
    project_id: string;
    key_id: number;
}
/**
 * Parameters for bulk updating keys
 */
export interface BulkUpdateKeysParams {
    project_id: string;
    keys: Array<{
        key_id: number;
        description?: string;
        platforms?: SupportedPlatforms[];
        tags?: string[];
    }>;
}
/**
 * Parameters for bulk deleting keys
 */
export interface BulkDeleteKeysParams {
    project_id: string;
    key_ids: number[];
}
/**
 * @function getKeys
 * @description Fetches a list of keys from a Lokalise project with optional filtering and pagination.
 * @memberof VendorLokaliseKeysService
 * @param {CursorPaginatedResult} options - Parameters including project ID, filters, and pagination options
 * @returns {Promise<CursorPaginatedResult<Key>>} A promise that resolves to the API response containing the keys list
 * @throws {McpError} Throws an McpError with details if the API call fails
 */
export declare function getKeys(options: KeyListParams): Promise<CursorPaginatedResult<Key>>;
/**
 * @function createKeys
 * @description Creates multiple keys in a Lokalise project
 * @memberof VendorLokaliseKeysService
 * @param {CreateKeysParams} options - Parameters including project ID and keys data
 * @returns {Promise<BulkResult<Key>>} A promise that resolves to the API response containing created keys
 * @throws {McpError} Throws an McpError with details if the API call fails
 */
export declare function createKeys(options: CreateKeysParams): Promise<BulkResult<Key>>;
/**
 * @function getKey
 * @description Fetches a single key from a Lokalise project
 * @memberof VendorLokaliseKeysService
 * @param {GetKeyParams} options - Parameters including project ID and key ID
 * @returns {Promise<LokaliseKey>} A promise that resolves to the key data
 * @throws {McpError} Throws an McpError with details if the API call fails
 */
export declare function getKey(options: GetKeyParams): Promise<Key>;
/**
 * @function updateKey
 * @description Updates a single key in a Lokalise project
 * @memberof VendorLokaliseKeysService
 * @param {UpdateKeyParams} options - Parameters including project ID, key ID and update data
 * @returns {Promise<LokaliseKey>} A promise that resolves to the updated key data
 * @throws {McpError} Throws an McpError with details if the API call fails
 */
export declare function updateKey(options: UpdateKeyParams): Promise<Key>;
/**
 * @function deleteKey
 * @description Deletes a single key from a Lokalise project
 * @memberof VendorLokaliseKeysService
 * @param {DeleteKeyParams} options - Parameters including project ID and key ID
 * @returns {Promise<KeysBulkDeleted>} A promise that resolves to the deletion confirmation
 * @throws {McpError} Throws an McpError with details if the API call fails
 */
export declare function deleteKey(options: DeleteKeyParams): Promise<KeyDeleted>;
/**
 * @function bulkUpdateKeys
 * @description Updates multiple keys in a Lokalise project
 * @memberof VendorLokaliseKeysService
 * @param {BulkUpdateKeysParams} options - Parameters including project ID and keys update data
 * @returns {Promise<any>} A promise that resolves to the bulk update results
 * @throws {McpError} Throws an McpError with details if the API call fails
 */
export declare function bulkUpdateKeys(options: BulkUpdateKeysParams): Promise<BulkResult<Key>>;
/**
 * @function bulkDeleteKeys
 * @description Deletes multiple keys from a Lokalise project
 * @memberof VendorLokaliseKeysService
 * @param {BulkDeleteKeysParams} options - Parameters including project ID and key IDs
 * @returns {Promise<any>} A promise that resolves to the bulk deletion results
 * @throws {McpError} Throws an McpError with details if the API call fails
 */
export declare function bulkDeleteKeys(options: BulkDeleteKeysParams): Promise<KeysBulkDeleted>;
