/**
 * Details for an AWS service category and the IAM services assigned to it.
 */
export interface CategoryDetails {
    /** Stable lowercase category key. */
    readonly key: string;
    /** Properly capitalized category name from AWS. */
    readonly name: string;
    /** Sorted IAM service keys assigned to the category. */
    readonly services: string[];
}
/**
 * Get all service category keys.
 *
 * @returns an array of all service category keys
 */
export declare function serviceCategories(): Promise<string[]>;
/**
 * Check if a service category exists.
 *
 * @param category the category key to check, is case insensitive
 * @returns true if the category exists, false otherwise
 */
export declare function serviceCategoryExists(category: string): Promise<boolean>;
/**
 * Get the IAM service to category mapping.
 *
 * @returns a map of IAM service keys to category keys
 */
export declare function iamServiceCategoryMap(): Promise<Record<string, string>>;
/**
 * Get IAM service keys assigned to a service category.
 *
 * @param category the category key to get IAM services for, is case insensitive
 * @throws an error if the category does not exist
 * @returns sorted IAM service keys assigned to the category
 */
export declare function iamServicesForCategory(category: string): Promise<string[]>;
/**
 * Get the service category key for an IAM service.
 *
 * @param service the IAM service key to get the category for, is case insensitive
 * @throws an error if the service does not exist or has no category mapping
 * @returns the category key for the IAM service
 */
export declare function categoryForIamService(service: string): Promise<string>;
/**
 * Get details for a service category.
 *
 * @param category the category key to get details for, is case insensitive
 * @throws an error if the category does not exist
 * @returns details for the service category
 */
export declare function getServiceCategory(category: string): Promise<CategoryDetails>;
//# sourceMappingURL=categories.d.ts.map