import { type AwsIamStore, type OrganizationPolicyType, type ResourceTypeParts, type StorageClientOptions } from '../AwsIamStore.js'; import { type PathBasedPersistenceAdapter } from '../PathBasedPersistenceAdapter.js'; export declare class FileSystemAwsIamStore implements AwsIamStore { private readonly baseFolder; private readonly separator; private fsAdapter; private readonly stringifyJson; constructor(baseFolder: string, partition: string, separator: string, fsAdapter: PathBasedPersistenceAdapter, options?: StorageClientOptions); private organizationPath; private organizationMetadataPath; private organizationalUnitsPath; private organizationalUnitPath; private organizationPoliciesPath; private organizationPolicyPath; private organizationPolicyMetadataPath; private organizationalUnitMetadataPath; private accountsPath; private accountPath; private accountMetadataPath; private buildResourcePath; private buildMetadataPath; /** * Root RAM folder for a given account. */ private ramRootPath; /** * Folder under ramRootPath for a specific region (or 'global'). */ private ramRegionPath; /** * File name for a given resource ARN: replace ':' and '/' with '-' */ private ramFileNameForArn; /** * Full path to the RAM policy file for this ARN in region. */ private ramPolicyFilePath; /** * Get the path to the indexes directory. * * @returns The path to the indexes directory. */ private indexesPath; /** * The path to the index file for a given index name. * * @param indexName the name of the index * @returns The path to the index file. */ private indexPath; saveResourceMetadata(accountId: string, arn: string, metadataType: string, data: string | any): Promise; listResourceMetadata(accountId: string, arn: string): Promise; getResourceMetadata(accountId: string, arn: string, metadataType: string, defaultValue?: D): Promise; deleteResourceMetadata(accountId: string, arn: string, metadataType: string): Promise; deleteResource(accountId: string, arn: string): Promise; listResources(accountId: string, options: ResourceTypeParts): Promise; findResourceMetadata(accountId: string, options: ResourceTypeParts): Promise; syncResourceList(accountId: string, options: ResourceTypeParts, desiredResources: string[]): Promise; deleteAccountMetadata(accountId: string, metadataType: string): Promise; saveAccountMetadata(accountId: string, metadataType: string, data: any): Promise; getAccountMetadata(accountId: string, metadataType: string, defaultValue?: D): Promise; getOrganizationMetadata(organizationId: string, metadataType: string, defaultValue?: D): Promise; saveOrganizationMetadata(organizationId: string, metadataType: string, data: any): Promise; deleteOrganizationMetadata(organizationId: string, metadataType: string): Promise; listOrganizationalUnits(organizationId: string): Promise; deleteOrganizationalUnitMetadata(organizationId: string, ouId: string, metadataType: string): Promise; saveOrganizationalUnitMetadata(organizationId: string, ouId: string, metadataType: string, data: any): Promise; getOrganizationalUnitMetadata(organizationId: string, ouId: string, metadataType: string, defaultValue?: D): Promise; deleteOrganizationalUnit(organizationId: string, ouId: string): Promise; deleteOrganizationPolicyMetadata(organizationId: string, policyType: OrganizationPolicyType, policyId: string, metadataType: string): Promise; saveOrganizationPolicyMetadata(organizationId: string, policyType: OrganizationPolicyType, policyId: string, metadataType: string, data: any): Promise; getOrganizationPolicyMetadata(organizationId: string, policyType: OrganizationPolicyType, policyId: string, metadataType: string, defaultValue?: D): Promise; deleteOrganizationPolicy(organizationId: string, policyType: OrganizationPolicyType, policyId: string): Promise; listOrganizationPolicies(organizationId: string, policyType: OrganizationPolicyType): Promise; syncRamResources(accountId: string, region: string | undefined, arns: string[]): Promise; saveRamResource(accountId: string, arn: string, data: any): Promise; getRamResource(accountId: string, arn: string, defaultValue?: D): Promise; listAccountIds(): Promise; getIndex(indexName: string, defaultValue: T): Promise<{ data: T; lockId: string; }>; saveIndex(indexName: string, data: any, lockId: string): Promise; writeBatch(fn: () => Promise): Promise; /** * Serialize content for storage, preserving string payloads as already-serialized JSON. * * @param data The content to serialize. * @returns The serialized content. */ private serialize; /** * Checks if a given content value is empty. * * @param content The content to check. * @returns true if the content is empty, false otherwise. */ private isEmptyContent; /** * Read the content of a file or return a default value if the file does not exist. * * @param filePath the path to the file * @param defaultValue the default value to return if the file does not exist * @returns the content of the file or the default value */ private contentOrDefault; /** * Either saves the provided data to a file or deletes the file if the data is empty. * * @param filePath the path to the file * @param data the data to save in the file */ private saveOrDeleteFile; } //# sourceMappingURL=FileSystemAwsIamStore.d.ts.map