import { BicepConstruct } from './bicepConstruct'; import * as types from './types'; import { BicepTemplate } from '../../deploy/template'; /** * Properties for Graph Application construct */ export interface ApplicationProps { /** Display name of the application */ readonly displayName: string; /** Redirect URIs for web authentication */ readonly redirectUris: string[]; /** Supported account types */ readonly signInAudience?: types.SignInAudience; /** App roles for the application */ readonly appRoles?: Array<{ id: string; displayName: string; description: string; value: string; allowedMemberTypes: types.AllowedMemberType[]; isEnabled: boolean; }>; /** Required resource access permissions */ readonly requiredResourceAccess?: Array<{ resourceAppId: types.ResourceAppId; resourceAccess: Array<{ id: types.MicrosoftGraphPermission; type: types.PermissionType; }>; }>; /** Identifier URIs (App ID URIs) for the application when used as a resource app */ readonly identifierUris?: string[]; /** Optional claims configuration */ readonly optionalClaims?: { idToken?: Array<{ name: string; essential: boolean; source?: string; }>; }; } /** * CDK-style construct for Microsoft Graph Application */ export declare class Application extends BicepConstruct { readonly props: ApplicationProps; readonly appId: string; readonly applicationId: string; constructor(template: BicepTemplate, resourceName: string, props: ApplicationProps); synthesize(): void; }