/*!
 * Copyright (C) Microsoft Corporation. All rights reserved.
 */
export type App = {
    appType: AppType;
    appSubtype?: AppSubtype;
    id: string;
    logicalName?: string;
    metadataVersion?: number;
    name: string;
    properties: AppProperties;
    tags?: Record<string, string>;
    type: string;
};
export type ConnectionParameterDefinition = {
    /** Top-level parameter type, e.g. 'oauthSetting' for OAuth-handled params */
    type?: string;
    oAuthSettings?: {
        properties?: {
            IsFirstParty?: string;
            /** Whether this connector supports the OBO (on-behalf-of) silent SSO token flow. */
            IsOnbehalfofLoginSupported?: boolean;
            [key: string]: unknown;
        };
        [key: string]: unknown;
    };
    uiDefinition?: {
        constraints?: {
            required?: 'true' | 'false';
            hidden?: 'true' | 'false';
        };
        [key: string]: unknown;
    };
    [key: string]: unknown;
};
export type Api = {
    id: string;
    name: string;
    type: string;
    properties: {
        primaryRuntimeUrl: string;
        displayName: string;
        interfaces: {
            [key: string]: {
                revisions: {
                    [key: string]: {
                        baseUrl: string;
                        status: string;
                    };
                };
            };
        };
        swagger?: object;
        metadata?: {
            allowSharing?: boolean;
        };
        connectionParameters?: Record<string, ConnectionParameterDefinition>;
        connectionParameterSets?: {
            values?: Array<{
                name: string;
                parameters?: Record<string, ConnectionParameterDefinition>;
                metadata?: {
                    allowSharing?: boolean;
                };
            }>;
        };
        capabilities?: string[];
    };
};
export type Connection = {
    id: string;
    name: string;
    type: string;
    properties: {
        reference: string;
        displayName: string;
        apiId: string;
        connectionParametersSet?: {
            name: string;
        };
        api?: Api;
        /** Present when the PUT was made with $expand=ConsentLink */
        consentInfo?: {
            firstPartyLoginUri?: string;
        };
        /** Present only for on-premises gateway connections. */
        gatewayObject?: {
            id: string;
            [key: string]: unknown;
        };
        /**
         * Server-provided URLs used to verify the connection is live.
         * Returned by the connection PUT/GET; consumed by `testConnectionAsync`.
         */
        testLinks?: Array<{
            requestUri: string;
            /** HTTP method to use. Known values: 'get' | 'post'. Defaults to 'get' when omitted. */
            method?: string;
        }>;
    };
};
export type AppProperties = {
    aiGeneratedDescription?: string;
    almMode?: string;
    appOpenUri?: string;
    appOverrides?: object;
    appPackageDetails?: AppPackageDetails;
    appPlayUri?: string;
    appUris?: object;
    appVersion: string;
    authorizationReferences?: unknown[];
    backgroundColor: string;
    backgroundImageUri?: string;
    bypassConsent?: boolean;
    commitMessage?: string;
    connectionReferences?: Record<string, ConnectionReference>;
    createdByClientVersion?: {
        major: number;
        minor?: number;
        build?: number;
        revision?: number;
    };
    createdTime?: string;
    databaseReferences?: {
        [key: string]: CdsDatabaseReference;
    };
    description?: string;
    displayName: string;
    environment: Environment;
    hasCustomMiddleTier?: boolean;
    lastPublishTime?: string;
    lifeCycleId?: string;
    publisher?: string;
};
export type Environment = {
    id: string;
    name: string;
    properties: {
        displayName?: string;
        location?: string;
        environmentSku?: string;
        environmentType?: string;
        createdBy?: object;
        runtimeEndpoints?: object;
        linkedEnvironmentMetadata?: {
            baseLanguage?: number;
            createdTime?: string;
            domainName?: string;
            friendlyName?: string;
            instanceApiUrl?: string;
            instanceState?: string;
            instanceUrl?: string;
            platformSku?: string;
            resourceId?: string;
            uniqueName?: string;
            version?: string;
        };
        governanceConfiguration?: {
            protectionLevel?: 'basic' | 'standard';
        };
        updateCadence?: object;
        cluster?: EnvironmentCluster;
    };
};
export type EnvironmentCluster = {
    environment: 'Experiment' | 'Test' | 'Prod' | 'Gov' | 'Mooncake' | 'Rx' | 'Ex';
    category: 'Dev' | 'Prv' | 'Test' | 'Preprod' | 'FirstRelease' | 'Prod' | 'Gov' | 'High' | 'DoD' | 'Mooncake' | 'Ex' | 'Rx';
    geoShortName: string;
    number: string;
    uriSuffix: string;
};
export type ConnectionReference = {
    id: string;
    displayName: string;
    dataSources: string[];
    nestedActions: object[];
    actions: string[];
    parameterHintsV2: object;
    parameterHints: object;
    dependents: string[];
    dependencies: string[];
    dataSets: object;
    sharedConnectionId?: string | null;
    authenticationType?: string | null;
};
export type CdsDatabaseReference = {
    databaseDetails: {
        environmentName: string;
        overrideValues?: {
            environmentName?: string;
            environmentVariableName?: string;
        };
        linkedEnvironmentMetadata?: object;
    };
    dataSources?: {
        [key: string]: DatabaseDataSource;
    };
    components?: object[];
    actions?: string[];
};
export type DatabaseDataSource = {
    entitySetName: string;
    logicalName: string;
    overrideValues?: {
        entitySetName?: string;
        logicalName?: string;
    };
    apps?: string[];
};
export type AppPackageDetails = {
    appPackageResourcesKind?: string;
    playerPackage?: AppUri;
    unauthenticatedWebPackage?: AppUri;
    unauthenticatedModernRuntimePackage?: AppUri;
    webPackage?: AppUri;
    packagePropertiesJson?: string;
    logicalName?: string;
    id?: string;
};
export type AppUri = {
    value: string;
    readonlyValue?: string;
};
export type AppType = 'AppComponentLibrary' | 'ClassicCanvasApp' | 'CustomCanvasPage' | 'UnifiedApp' | 'CodeApp' | 'MobileApp';
export type AppSubtype = 'AppBuilderApp' | 'BYOCApp' | 'CopilotCanvasApp' | 'PowerAppsApp';
//# sourceMappingURL=ApiTypes.d.ts.map