/*!
 * Copyright (C) Microsoft Corporation. All rights reserved.
 */
/** Resolved metadata for a Power Platform app (full RP response shape). */
export interface AppMetadata {
    app: App;
    apis?: Api[];
    /** Raw RP connection objects. */
    connections?: RpConnection[];
    appConnections?: RpConnection[];
    listAppPackageOperationDetails?: ListAppPackageOperationDetails;
    appEntitlementDetails?: AppEntitlementDetails;
}
export interface AppEntitlementDetails {
    appEntitlementType?: string;
    licenseIds?: string[];
    usedTrial?: boolean;
    canUsePremiumApis?: boolean;
    entitlementToken?: string;
}
export interface App {
    appType: string;
    id: string;
    logicalName?: string;
    name: string;
    properties: AppProperties;
    tags?: Record<string, string>;
    type: string;
    appLocation?: string;
    isAppComponentLibrary?: boolean;
}
export interface UserInfo {
    id: string;
    displayName: string;
    email?: string;
    type: string;
    tenantId?: string;
    userPrincipalName?: string;
}
export interface ClientVersion {
    major: number;
    minor: number;
    build: number;
    revision: number;
    majorRevision: number;
    minorRevision: number;
}
export interface AppUris {
    documentUri?: {
        value: string;
    };
    codeAppPackageUri?: {
        value: string;
    };
    imageUris?: unknown[];
    additionalUris?: unknown[];
}
export interface ExecutionRestrictions {
    isTeamsOnly?: boolean;
    dataLossPreventionEvaluationResult?: {
        status?: string;
        lastEvaluationDate?: string;
        violations?: unknown[];
        violationsByPolicy?: unknown[];
        violationErrorMessage?: string;
    };
    conditionalAccessAuthenticationContextIds?: string[];
}
export interface AppProperties {
    appVersion: string;
    backgroundColor: string;
    bypassConsent?: boolean;
    connectionReferences?: Record<string, ConnectionReference>;
    databaseReferences?: Record<string, CdsDatabaseReference>;
    displayName: string;
    environment: Environment;
    executionRestrictions?: ExecutionRestrictions;
    lastDraftVersion?: string;
    lifeCycleId?: string;
    status?: string;
    createdByClientVersion?: ClientVersion;
    minClientVersion?: ClientVersion;
    createdTime?: string;
    lastModifiedTime?: string;
    lastPublishTime?: string;
    owner?: UserInfo;
    createdBy?: UserInfo;
    lastModifiedBy?: UserInfo;
    lastPublishedBy?: UserInfo;
    backgroundImageUri?: string;
    description?: string;
    commitMessage?: string;
    publisher?: string;
    appUris?: AppUris;
    sharedGroupsCount?: number;
    sharedUsersCount?: number;
    appOpenProtocolUri?: string;
    appOpenUri?: string;
    appPlayUri?: string;
    appPlayEmbeddedUri?: string;
    appPlayTeamsUri?: string;
    authorizationReferences?: unknown[];
    userAppResourceConsent?: unknown[];
    userAppMetadata?: {
        favorite?: string;
        includeInAppsList?: boolean;
    };
    isFeaturedApp?: boolean;
    isHeroApp?: boolean;
    almMode?: string;
    performanceOptimizationEnabled?: boolean;
    unauthenticatedWebPackageHint?: string;
    canConsumeAppPass?: boolean;
    enableModernRuntimeMode?: boolean;
    appPlanClassification?: string;
    usesPremiumApi?: boolean;
    usesOnlyGrandfatheredPremiumApis?: boolean;
    usesCustomApi?: boolean;
    usesOnPremiseGateway?: boolean;
    usesPcfExternalServiceUsage?: boolean;
    isCustomizable?: boolean;
    chatPaneCopilotEnabled?: boolean;
    draftingCopilotEnabled?: boolean;
    canvasGalleryFilteringCopilotEnabled?: boolean;
    appVersionSource?: string;
}
export interface LinkedEnvironmentMetadata {
    resourceId?: string;
    friendlyName?: string;
    uniqueName?: string;
    domainName?: string;
    version?: string;
    instanceUrl?: string;
    instanceApiUrl?: string;
    baseLanguage?: number;
    instanceState?: string;
    createdTime?: string;
    platformSku?: string;
}
export interface Environment {
    id: string;
    name: string;
    location?: string;
    properties: {
        displayName?: string;
        location?: string;
        azureRegion?: string;
        createdTime?: string;
        lastModifiedTime?: string;
        provisioningState?: string;
        creationType?: string;
        environmentSku?: string;
        isDefault?: boolean;
        databaseType?: string;
        linkedEnvironmentMetadata?: LinkedEnvironmentMetadata;
        runtimeEndpoints?: Record<string, string>;
        clientUris?: {
            admin?: string;
            maker?: string;
        };
        cluster?: {
            category?: string;
            number?: string;
            uriSuffix?: string;
            geoShortName?: string;
            environment?: string;
        };
        states?: {
            management?: {
                id?: string;
            };
            runtime?: {
                runtimeReasonCode?: string;
                id?: string;
            };
        };
        retentionPeriod?: string;
        lifecycleAuthority?: string;
        governanceConfiguration?: {
            protectionLevel?: string;
        };
    };
}
/** Declared connection slot in the app definition. */
export interface ConnectionReference {
    /** API ID (e.g., /providers/Microsoft.PowerApps/apis/shared_sharepointonline) */
    id: string;
    displayName: string;
    iconUri: string;
    dataSources?: string[];
    datasets?: Record<string, DatasetReference>;
    /** paramName -> localConnectionId (for composite connections) */
    dependencies?: Record<string, string>;
    /** localConnectionIds that depend on this reference */
    dependents?: string[];
    bypassConsent?: boolean;
    sharedConnectionId?: string;
    appActions?: string[];
    authenticationType?: string;
    isCustomApiConnection?: boolean;
    isOnPremiseConnection?: boolean;
    gatewayObjectIdHint?: string;
    resourceIdentifier?: string;
    parameterHints?: Record<string, ParameterHint>;
    parameterHintsV2?: Record<string, ParameterHint>;
    nestedActions?: NestedAction[];
    apiTier?: string;
    endpoints?: string[];
}
export interface CdsDatabaseReference {
    databaseDetails: {
        referenceType?: string;
        environmentName: string;
        overrideValues?: {
            status?: string;
            environmentName?: string;
            environmentVariableName?: string;
        };
        linkedEnvironmentMetadata?: LinkedEnvironmentMetadata;
    };
    dataSources?: Record<string, CdsDataSourceReference>;
    components?: object[];
    actions?: string[];
}
export interface CdsDataSourceReference {
    entitySetName: string;
    logicalName: string;
    isHidden?: boolean;
}
export interface Api {
    id: string;
    name: string;
    type: string;
    properties: object;
}
export interface RpConnection {
    id: string;
    name: string;
    type: string;
    properties: object;
}
export interface AppPackageDetails {
    webPackage?: {
        value: string;
    };
    codeAppPackage?: {
        value: string;
    };
    id?: string;
}
export interface ListAppPackageOperationDetails {
    appPackageDetails?: AppPackageDetails;
    nestedAppsPackageDetails?: object[];
    retryAfter?: string;
    packageReturnUri?: string;
    packageStatus: string;
    error?: string;
}
export interface DlpEvaluationResult {
    evaluationResult: {
        status: string;
        lastEvaluationDate?: string;
        violations: object[];
        violationsByPolicy: object[];
        violationErrorMessage?: string;
    };
    errors: object[];
}
export interface DatasetReference {
    dataSources: Record<string, DataSourceInfo>;
    datasetOverride?: {
        name: string;
    };
}
export interface DataSourceInfo {
    tableNameOverride?: {
        name: string;
    };
}
export interface ParameterHint {
    value: string | number | boolean;
}
export interface NestedAction {
    actionName: string;
    flowConnectionRef?: string;
}
//# sourceMappingURL=AppMetadata.d.ts.map