import { IEnvironmentAware } from "../environment-aware";
import * as constructs from "constructs";
/**
 * Indicates that this resource can be referenced as a ApiKeyCredentialProvider.
 *
 * @stability experimental
 */
export interface IApiKeyCredentialProviderRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a ApiKeyCredentialProvider resource.
     */
    readonly apiKeyCredentialProviderRef: ApiKeyCredentialProviderReference;
}
/**
 * A reference to a ApiKeyCredentialProvider resource.
 *
 * @struct
 * @stability external
 */
export interface ApiKeyCredentialProviderReference {
    /**
     * The CredentialProviderArn of the ApiKeyCredentialProvider resource.
     */
    readonly credentialProviderArn: string;
}
/**
 * Indicates that this resource can be referenced as a BrowserCustom.
 *
 * @stability experimental
 */
export interface IBrowserCustomRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a BrowserCustom resource.
     */
    readonly browserCustomRef: BrowserCustomReference;
}
/**
 * A reference to a BrowserCustom resource.
 *
 * @struct
 * @stability external
 */
export interface BrowserCustomReference {
    /**
     * The BrowserId of the BrowserCustom resource.
     */
    readonly browserId: string;
    /**
     * The ARN of the BrowserCustom resource.
     */
    readonly browserArn: string;
}
/**
 * Indicates that this resource can be referenced as a BrowserProfile.
 *
 * @stability experimental
 */
export interface IBrowserProfileRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a BrowserProfile resource.
     */
    readonly browserProfileRef: BrowserProfileReference;
}
/**
 * A reference to a BrowserProfile resource.
 *
 * @struct
 * @stability external
 */
export interface BrowserProfileReference {
    /**
     * The ProfileId of the BrowserProfile resource.
     */
    readonly profileId: string;
    /**
     * The ARN of the BrowserProfile resource.
     */
    readonly profileArn: string;
}
/**
 * Indicates that this resource can be referenced as a CodeInterpreterCustom.
 *
 * @stability experimental
 */
export interface ICodeInterpreterCustomRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a CodeInterpreterCustom resource.
     */
    readonly codeInterpreterCustomRef: CodeInterpreterCustomReference;
}
/**
 * A reference to a CodeInterpreterCustom resource.
 *
 * @struct
 * @stability external
 */
export interface CodeInterpreterCustomReference {
    /**
     * The CodeInterpreterId of the CodeInterpreterCustom resource.
     */
    readonly codeInterpreterId: string;
    /**
     * The ARN of the CodeInterpreterCustom resource.
     */
    readonly codeInterpreterArn: string;
}
/**
 * Indicates that this resource can be referenced as a Evaluator.
 *
 * @stability experimental
 */
export interface IEvaluatorRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Evaluator resource.
     */
    readonly evaluatorRef: EvaluatorReference;
}
/**
 * A reference to a Evaluator resource.
 *
 * @struct
 * @stability external
 */
export interface EvaluatorReference {
    /**
     * The EvaluatorArn of the Evaluator resource.
     */
    readonly evaluatorArn: string;
}
/**
 * Indicates that this resource can be referenced as a Gateway.
 *
 * @stability experimental
 */
export interface IGatewayRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Gateway resource.
     */
    readonly gatewayRef: GatewayReference;
}
/**
 * A reference to a Gateway resource.
 *
 * @struct
 * @stability external
 */
export interface GatewayReference {
    /**
     * The GatewayIdentifier of the Gateway resource.
     */
    readonly gatewayIdentifier: string;
    /**
     * The ARN of the Gateway resource.
     */
    readonly gatewayArn: string;
}
/**
 * Indicates that this resource can be referenced as a GatewayTarget.
 *
 * @stability experimental
 */
export interface IGatewayTargetRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a GatewayTarget resource.
     */
    readonly gatewayTargetRef: GatewayTargetReference;
}
/**
 * A reference to a GatewayTarget resource.
 *
 * @struct
 * @stability external
 */
export interface GatewayTargetReference {
    /**
     * The GatewayIdentifier of the GatewayTarget resource.
     */
    readonly gatewayIdentifier: string;
    /**
     * The TargetId of the GatewayTarget resource.
     */
    readonly targetId: string;
}
/**
 * Indicates that this resource can be referenced as a Memory.
 *
 * @stability experimental
 */
export interface IMemoryRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Memory resource.
     */
    readonly memoryRef: MemoryReference;
}
/**
 * A reference to a Memory resource.
 *
 * @struct
 * @stability external
 */
export interface MemoryReference {
    /**
     * The MemoryArn of the Memory resource.
     */
    readonly memoryArn: string;
}
/**
 * Indicates that this resource can be referenced as a OAuth2CredentialProvider.
 *
 * @stability experimental
 */
export interface IOAuth2CredentialProviderRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a OAuth2CredentialProvider resource.
     */
    readonly oAuth2CredentialProviderRef: OAuth2CredentialProviderReference;
}
/**
 * A reference to a OAuth2CredentialProvider resource.
 *
 * @struct
 * @stability external
 */
export interface OAuth2CredentialProviderReference {
    /**
     * The CredentialProviderArn of the OAuth2CredentialProvider resource.
     */
    readonly credentialProviderArn: string;
}
/**
 * Indicates that this resource can be referenced as a OnlineEvaluationConfig.
 *
 * @stability experimental
 */
export interface IOnlineEvaluationConfigRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a OnlineEvaluationConfig resource.
     */
    readonly onlineEvaluationConfigRef: OnlineEvaluationConfigReference;
}
/**
 * A reference to a OnlineEvaluationConfig resource.
 *
 * @struct
 * @stability external
 */
export interface OnlineEvaluationConfigReference {
    /**
     * The OnlineEvaluationConfigArn of the OnlineEvaluationConfig resource.
     */
    readonly onlineEvaluationConfigArn: string;
}
/**
 * Indicates that this resource can be referenced as a Policy.
 *
 * @stability experimental
 */
export interface IPolicyRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Policy resource.
     */
    readonly policyRef: PolicyReference;
}
/**
 * A reference to a Policy resource.
 *
 * @struct
 * @stability external
 */
export interface PolicyReference {
    /**
     * The PolicyArn of the Policy resource.
     */
    readonly policyArn: string;
}
/**
 * Indicates that this resource can be referenced as a PolicyEngine.
 *
 * @stability experimental
 */
export interface IPolicyEngineRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a PolicyEngine resource.
     */
    readonly policyEngineRef: PolicyEngineReference;
}
/**
 * A reference to a PolicyEngine resource.
 *
 * @struct
 * @stability external
 */
export interface PolicyEngineReference {
    /**
     * The PolicyEngineArn of the PolicyEngine resource.
     */
    readonly policyEngineArn: string;
}
/**
 * Indicates that this resource can be referenced as a Runtime.
 *
 * @stability experimental
 */
export interface IRuntimeRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a Runtime resource.
     */
    readonly runtimeRef: RuntimeReference;
}
/**
 * A reference to a Runtime resource.
 *
 * @struct
 * @stability external
 */
export interface RuntimeReference {
    /**
     * The AgentRuntimeId of the Runtime resource.
     */
    readonly agentRuntimeId: string;
    /**
     * The ARN of the Runtime resource.
     */
    readonly agentRuntimeArn: string;
}
/**
 * Indicates that this resource can be referenced as a RuntimeEndpoint.
 *
 * @stability experimental
 */
export interface IRuntimeEndpointRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a RuntimeEndpoint resource.
     */
    readonly runtimeEndpointRef: RuntimeEndpointReference;
}
/**
 * A reference to a RuntimeEndpoint resource.
 *
 * @struct
 * @stability external
 */
export interface RuntimeEndpointReference {
    /**
     * The AgentRuntimeEndpointArn of the RuntimeEndpoint resource.
     */
    readonly agentRuntimeEndpointArn: string;
}
/**
 * Indicates that this resource can be referenced as a WorkloadIdentity.
 *
 * @stability experimental
 */
export interface IWorkloadIdentityRef extends constructs.IConstruct, IEnvironmentAware {
    /**
     * A reference to a WorkloadIdentity resource.
     */
    readonly workloadIdentityRef: WorkloadIdentityReference;
}
/**
 * A reference to a WorkloadIdentity resource.
 *
 * @struct
 * @stability external
 */
export interface WorkloadIdentityReference {
    /**
     * The Name of the WorkloadIdentity resource.
     */
    readonly workloadIdentityName: string;
    /**
     * The ARN of the WorkloadIdentity resource.
     */
    readonly workloadIdentityArn: string;
}
