import * as HttpClient from "effect/unstable/http/HttpClient";
import * as S from "effect/Schema";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import type { CommonErrors } from "../errors.ts";
import type { Region } from "../region.ts";
export type DeviceName = string;
export type DeviceFleetName = string;
export type EntityName = string;
export type S3Uri = string;
export type ChecksumString = string;
export type ErrorMessage = string;
export type DeviceRegistration = string;
export type CacheTTLSeconds = string;
export type Dimension = string;
export type Metric = string;
export type Value = number;
export type ModelName = string;
export type Version = string;
export interface GetDeploymentsRequest {
    DeviceName?: string;
    DeviceFleetName?: string;
}
export declare const GetDeploymentsRequest: S.Schema<GetDeploymentsRequest>;
export type DeploymentType = "Model" | (string & {});
export declare const DeploymentType: S.String;
export type FailureHandlingPolicy = "ROLLBACK_ON_FAILURE" | "DO_NOTHING" | (string & {});
export declare const FailureHandlingPolicy: S.String;
export type ChecksumType = "SHA1" | (string & {});
export declare const ChecksumType: S.String;
export interface Checksum {
    Type?: ChecksumType;
    Sum?: string;
}
export declare const Checksum: S.Schema<Checksum>;
export type ModelState = "DEPLOY" | "UNDEPLOY" | (string & {});
export declare const ModelState: S.String;
export interface Definition {
    ModelHandle?: string;
    S3Url?: string;
    Checksum?: Checksum;
    State?: ModelState;
}
export declare const Definition: S.Schema<Definition>;
export type Definitions = Definition[];
export declare const Definitions: S.$Array<S.Schema<Definition>>;
export interface EdgeDeployment {
    DeploymentName?: string;
    Type?: DeploymentType;
    FailureHandlingPolicy?: FailureHandlingPolicy;
    Definitions?: Definition[];
}
export declare const EdgeDeployment: S.Schema<EdgeDeployment>;
export type EdgeDeployments = EdgeDeployment[];
export declare const EdgeDeployments: S.$Array<S.Schema<EdgeDeployment>>;
export interface GetDeploymentsResult {
    Deployments?: EdgeDeployment[];
}
export declare const GetDeploymentsResult: S.Schema<GetDeploymentsResult>;
export interface GetDeviceRegistrationRequest {
    DeviceName?: string;
    DeviceFleetName?: string;
}
export declare const GetDeviceRegistrationRequest: S.Schema<GetDeviceRegistrationRequest>;
export interface GetDeviceRegistrationResult {
    DeviceRegistration?: string;
    CacheTTL?: string;
}
export declare const GetDeviceRegistrationResult: S.Schema<GetDeviceRegistrationResult>;
export interface EdgeMetric {
    Dimension?: string;
    MetricName?: string;
    Value?: number;
    Timestamp?: Date;
}
export declare const EdgeMetric: S.Schema<EdgeMetric>;
export type EdgeMetrics = EdgeMetric[];
export declare const EdgeMetrics: S.$Array<S.Schema<EdgeMetric>>;
export interface Model {
    ModelName?: string;
    ModelVersion?: string;
    LatestSampleTime?: Date;
    LatestInference?: Date;
    ModelMetrics?: EdgeMetric[];
}
export declare const Model: S.Schema<Model>;
export type Models = Model[];
export declare const Models: S.$Array<S.Schema<Model>>;
export type DeploymentStatus = "SUCCESS" | "FAIL" | (string & {});
export declare const DeploymentStatus: S.String;
export interface DeploymentModel {
    ModelHandle?: string;
    ModelName?: string;
    ModelVersion?: string;
    DesiredState?: ModelState;
    State?: ModelState;
    Status?: DeploymentStatus;
    StatusReason?: string;
    RollbackFailureReason?: string;
}
export declare const DeploymentModel: S.Schema<DeploymentModel>;
export type DeploymentModels = DeploymentModel[];
export declare const DeploymentModels: S.$Array<S.Schema<DeploymentModel>>;
export interface DeploymentResult {
    DeploymentName?: string;
    DeploymentStatus?: string;
    DeploymentStatusMessage?: string;
    DeploymentStartTime?: Date;
    DeploymentEndTime?: Date;
    DeploymentModels?: DeploymentModel[];
}
export declare const DeploymentResult: S.Schema<DeploymentResult>;
export interface SendHeartbeatRequest {
    AgentMetrics?: EdgeMetric[];
    Models?: Model[];
    AgentVersion?: string;
    DeviceName?: string;
    DeviceFleetName?: string;
    DeploymentResult?: DeploymentResult;
}
export declare const SendHeartbeatRequest: S.Schema<SendHeartbeatRequest>;
export interface SendHeartbeatResponse {
}
export declare const SendHeartbeatResponse: S.Schema<SendHeartbeatResponse>;
declare const InternalServiceException_base: S.Class<InternalServiceException, S.TaggedStruct<"InternalServiceException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError>;
export declare class InternalServiceException extends InternalServiceException_base {
}
export type GetDeploymentsError = InternalServiceException | CommonErrors;
/**
 * Use to get the active deployments from a device.
 */
export declare const getDeployments: API.OperationMethod<GetDeploymentsRequest, GetDeploymentsResult, GetDeploymentsError, Credentials | Region | HttpClient.HttpClient>;
export type GetDeviceRegistrationError = InternalServiceException | CommonErrors;
/**
 * Use to check if a device is registered with SageMaker Edge Manager.
 */
export declare const getDeviceRegistration: API.OperationMethod<GetDeviceRegistrationRequest, GetDeviceRegistrationResult, GetDeviceRegistrationError, Credentials | Region | HttpClient.HttpClient>;
export type SendHeartbeatError = InternalServiceException | CommonErrors;
/**
 * Use to get the current status of devices registered on SageMaker Edge Manager.
 */
export declare const sendHeartbeat: API.OperationMethod<SendHeartbeatRequest, SendHeartbeatResponse, SendHeartbeatError, Credentials | Region | HttpClient.HttpClient>;
export {};
//# sourceMappingURL=sagemaker-edge.d.ts.map