import { ArmClient } from '../client/ArmClient.js'; import type { ArmResource, ResourceGroup, AzureLocation } from '../types/arm-types.js'; /** * Service for generic Azure resource operations. */ export declare class ResourceService { private client; constructor(client: ArmClient); /** * List all resources in the subscription or a specific resource group. */ listResources(options?: { resourceGroup?: string; resourceType?: string; tagFilter?: string; nameContains?: string; maxResults?: number; }): Promise<{ resources: ArmResource[]; summary: { total: number; byType: Record; byResourceGroup: Record; byLocation: Record; }; }>; /** * Get a resource by its full ARM resource ID. * By default filters out null/undefined properties to reduce response size. */ getResource(resourceId: string, options?: { includeAllProperties?: boolean; }): Promise; /** * Recursively filter out null/undefined properties from an object. */ private filterNullProperties; /** * Get a resource by name, type, and resource group. * By default filters out null/undefined properties to reduce response size. */ getResourceByName(resourceGroup: string, resourceType: string, resourceName: string, options?: { includeAllProperties?: boolean; }): Promise; /** * List all resource groups in the subscription. */ listResourceGroups(options?: { tagFilter?: string; nameContains?: string; }): Promise<{ resourceGroups: Array; }>; /** * Get tags for a resource. */ getResourceTags(resourceId: string): Promise>; /** * List available Azure locations for the subscription. * By default returns only recommended physical regions with minimal data. */ listLocations(options?: { regionCategory?: 'Recommended' | 'Other' | 'all'; geographyGroup?: string; includeMetadata?: boolean; }): Promise<{ locations: Array<{ name: string; displayName: string; regionalDisplayName?: string; geographyGroup?: string; metadata?: AzureLocation['metadata']; }>; }>; /** * Query resources using Azure Resource Graph. */ queryResourceGraph(query: string, subscriptions?: string[]): Promise<{ data: unknown[]; count: number; }>; } //# sourceMappingURL=ResourceService.d.ts.map