import type { CloudflareAccountLike, CloudflareApiClient, CloudflareComponent, CloudflareComponentSelection, CloudflareKvNamespaceLike, CloudflarePermissionGroupLike, CloudflareQueueLike, CloudflareResolvedPermissionGroup, CloudflareTokenPermissionRequirement, CloudflareTokenPolicyParam, CloudflareTokenCreateResponseLike } from './types.js';
export declare function resolveComponents(selection: CloudflareComponentSelection | undefined): Readonly<Record<CloudflareComponent, boolean>>;
export declare function buildTokenRequirements(components: Readonly<Record<CloudflareComponent, boolean>>, includeBootstrap: boolean): readonly CloudflareTokenPermissionRequirement[];
export declare function selectPermissionGroups(requirements: readonly CloudflareTokenPermissionRequirement[], groups: readonly CloudflarePermissionGroupLike[]): readonly string[];
export declare function resolvePermissionGroupIds(requirements: readonly CloudflareTokenPermissionRequirement[], listPermissionGroups: (params?: {
    readonly name?: string;
    readonly scope?: string;
}) => AsyncIterable<CloudflarePermissionGroupLike>): Promise<readonly string[]>;
export declare function resolvePermissionGroups(requirements: readonly CloudflareTokenPermissionRequirement[], listPermissionGroups: (params?: {
    readonly name?: string;
    readonly scope?: string;
}) => AsyncIterable<CloudflarePermissionGroupLike>): Promise<readonly CloudflareResolvedPermissionGroup[]>;
export declare function buildTokenPolicies(accountId: string, zoneId: string | undefined, groups: readonly CloudflareResolvedPermissionGroup[]): readonly CloudflareTokenPolicyParam[];
export declare function verifyCreatedTokenPolicies(token: CloudflareTokenCreateResponseLike, expectedGroups: readonly CloudflareResolvedPermissionGroup[], loadToken?: (tokenId: string) => Promise<CloudflareTokenCreateResponseLike>): Promise<void>;
export declare function collectSingleAccount(client: CloudflareApiClient, accountId: string, warnings: string[]): Promise<readonly CloudflareAccountLike[]>;
export declare function collectAsync<T>(iterable: AsyncIterable<T>, limit?: number): Promise<readonly T[]>;
export declare function clean(value: string | undefined): string;
export declare function stripTrailingSlash(value: string): string;
export declare function hostnameFromUrl(value: string): string;
export declare function normalizeHostname(value: string | undefined): string;
export declare function hostnameBelongsToZone(hostname: string, zoneName: string): boolean;
export declare function isPlaceholderHostname(hostname: string): boolean;
export declare function isLocalHostname(hostname: string): boolean;
export declare function deriveZoneHostname(label: string, zoneName: string): string;
export declare function requireQueueId(queue: CloudflareQueueLike, queueName: string): string;
export declare function requireKvNamespaceId(namespace: CloudflareKvNamespaceLike): string;
export declare function safeResponseText(response: Response): Promise<string>;
//# sourceMappingURL=utils.d.ts.map