import { StorageConfig, TopLevelConfig } from '../config/config.js';
import { AwsIamStore } from './AwsIamStore.js';
/**
 * Create a storage client based on the provided configurations and partition.
 *
 * @param configs - The top-level configurations that define the storage settings.
 * @param partition - The partition to use for the storage client.
 * @returns The storage client instance to use
 */
export declare function createStorageClient(configs: TopLevelConfig[], partition: string): AwsIamStore;
/**
 * Create a storage client based on the provided storage configuration and partition.
 *
 * @param storageConfig - The storage configuration object that defines the type and path of the storage.
 * @param partition - The partition to use for the storage client.
 * @returns The storage client instance to use
 */
export declare function createStorageClient(storageConfig: StorageConfig, partition: string): AwsIamStore;
/**
 * Create an in-memory storage client with the 'aws' partition.
 *
 * This is useful for testing.
 */
export declare function createInMemoryStorageClient(): AwsIamStore;
/**
 * Generate a resource prefix given a starting path, a resource ARN, and a separator.
 * The function uses splitArnParts to get the parts of the ARN and then joins each non-empty part
 * with the provided separator. The last segment (resourcePath) is URL encoded.
 *
 * @param startingPath - The starting path (e.g. a base folder)
 * @param resourceArn - The full resource ARN.
 * @param separator - The separator to use (e.g. '/' or '-').
 * @returns A string that represents the resource prefix.
 */
export declare function resourcePrefix(startingPath: string, resourceArn: string, separator: string): string;
/**
 * Generate a resource type prefix based on the provided starting path and resource type parts.
 *
 * @param startingPath - The starting path (e.g. a base folder)
 * @param parts - An object containing the components of the resource type
 * @param separator - the separator to use for joining the parts. This could be '/' or any other string.
 * @returns A string that represents the resource type prefix.
 */
export declare function resourceTypePrefix(startingPath: string, parts: {
    partition?: string;
    account?: string;
    service: string;
    region?: string;
    resourceType?: string;
}, separator: string): string;
export declare function joinPathParts(parts: (string | undefined)[], separator: string): string;
//# sourceMappingURL=util.d.ts.map