import * as HttpClient from "effect/unstable/http/HttpClient";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
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 IAMRoleArn = string;
export type ConfigurationParametersMap = {
    [key: string]: string | undefined;
};
export declare const ConfigurationParametersMap: S.$Record<S.String, S.optional<S.String>>;
export interface ConfigurationDefinitionInput {
    Type: string;
    Parameters: {
        [key: string]: string | undefined;
    };
    TypeVersion?: string;
    LocalDeploymentExecutionRoleName?: string;
    LocalDeploymentAdministrationRoleArn?: string;
}
export declare const ConfigurationDefinitionInput: S.Schema<ConfigurationDefinitionInput>;
export type ConfigurationDefinitionsInputList = ConfigurationDefinitionInput[];
export declare const ConfigurationDefinitionsInputList: S.$Array<S.Schema<ConfigurationDefinitionInput>>;
export type TagsMap = {
    [key: string]: string | undefined;
};
export declare const TagsMap: S.$Record<S.String, S.optional<S.String>>;
export interface CreateConfigurationManagerInput {
    Name?: string;
    Description?: string;
    ConfigurationDefinitions: ConfigurationDefinitionInput[];
    Tags?: {
        [key: string]: string | undefined;
    };
}
export declare const CreateConfigurationManagerInput: S.Schema<CreateConfigurationManagerInput>;
export interface CreateConfigurationManagerOutput {
    ManagerArn: string;
}
export declare const CreateConfigurationManagerOutput: S.Schema<CreateConfigurationManagerOutput>;
export interface DeleteConfigurationManagerInput {
    ManagerArn: string;
}
export declare const DeleteConfigurationManagerInput: S.Schema<DeleteConfigurationManagerInput>;
export interface DeleteConfigurationManagerResponse {
}
export declare const DeleteConfigurationManagerResponse: S.Schema<DeleteConfigurationManagerResponse>;
export interface GetConfigurationInput {
    ConfigurationId: string;
}
export declare const GetConfigurationInput: S.Schema<GetConfigurationInput>;
export type StatusType = "Deployment" | "AsyncExecutions" | (string & {});
export declare const StatusType: S.String;
export type Status = "INITIALIZING" | "DEPLOYING" | "SUCCEEDED" | "DELETING" | "STOPPING" | "FAILED" | "STOPPED" | "DELETE_FAILED" | "STOP_FAILED" | "NONE" | (string & {});
export declare const Status: S.String;
export type StatusDetails = {
    [key: string]: string | undefined;
};
export declare const StatusDetails: S.$Record<S.String, S.optional<S.String>>;
export interface StatusSummary {
    StatusType: StatusType;
    Status?: Status;
    StatusMessage?: string;
    LastUpdatedAt: Date;
    StatusDetails?: {
        [key: string]: string | undefined;
    };
}
export declare const StatusSummary: S.Schema<StatusSummary>;
export type StatusSummariesList = StatusSummary[];
export declare const StatusSummariesList: S.$Array<S.Schema<StatusSummary>>;
export interface GetConfigurationOutput {
    Id?: string;
    ManagerArn?: string;
    ConfigurationDefinitionId?: string;
    Type?: string;
    TypeVersion?: string;
    Account?: string;
    Region?: string;
    CreatedAt?: Date;
    LastModifiedAt?: Date;
    StatusSummaries?: StatusSummary[];
    Parameters?: {
        [key: string]: string | undefined;
    };
}
export declare const GetConfigurationOutput: S.Schema<GetConfigurationOutput>;
export interface GetConfigurationManagerInput {
    ManagerArn: string;
}
export declare const GetConfigurationManagerInput: S.Schema<GetConfigurationManagerInput>;
export interface ConfigurationDefinition {
    Type: string;
    Parameters: {
        [key: string]: string | undefined;
    };
    TypeVersion?: string;
    LocalDeploymentExecutionRoleName?: string;
    LocalDeploymentAdministrationRoleArn?: string;
    Id?: string;
}
export declare const ConfigurationDefinition: S.Schema<ConfigurationDefinition>;
export type ConfigurationDefinitionsList = ConfigurationDefinition[];
export declare const ConfigurationDefinitionsList: S.$Array<S.Schema<ConfigurationDefinition>>;
export interface GetConfigurationManagerOutput {
    ManagerArn: string;
    Description?: string;
    Name?: string;
    CreatedAt?: Date;
    LastModifiedAt?: Date;
    StatusSummaries?: StatusSummary[];
    ConfigurationDefinitions?: ConfigurationDefinition[];
    Tags?: {
        [key: string]: string | undefined;
    };
}
export declare const GetConfigurationManagerOutput: S.Schema<GetConfigurationManagerOutput>;
export interface GetServiceSettingsRequest {
}
export declare const GetServiceSettingsRequest: S.Schema<GetServiceSettingsRequest>;
export interface ServiceSettings {
    ExplorerEnablingRoleArn?: string;
}
export declare const ServiceSettings: S.Schema<ServiceSettings>;
export interface GetServiceSettingsOutput {
    ServiceSettings?: ServiceSettings;
}
export declare const GetServiceSettingsOutput: S.Schema<GetServiceSettingsOutput>;
export type FilterValues = string[];
export declare const FilterValues: S.$Array<S.String>;
export interface Filter {
    Key: string;
    Values: string[];
}
export declare const Filter: S.Schema<Filter>;
export type FiltersList = Filter[];
export declare const FiltersList: S.$Array<S.Schema<Filter>>;
export interface ListConfigurationManagersInput {
    StartingToken?: string;
    MaxItems?: number;
    Filters?: Filter[];
}
export declare const ListConfigurationManagersInput: S.Schema<ListConfigurationManagersInput>;
export interface ConfigurationDefinitionSummary {
    Id?: string;
    Type?: string;
    TypeVersion?: string;
    FirstClassParameters?: {
        [key: string]: string | undefined;
    };
}
export declare const ConfigurationDefinitionSummary: S.Schema<ConfigurationDefinitionSummary>;
export type ConfigurationDefinitionSummariesList = ConfigurationDefinitionSummary[];
export declare const ConfigurationDefinitionSummariesList: S.$Array<S.Schema<ConfigurationDefinitionSummary>>;
export interface ConfigurationManagerSummary {
    ManagerArn: string;
    Description?: string;
    Name?: string;
    StatusSummaries?: StatusSummary[];
    ConfigurationDefinitionSummaries?: ConfigurationDefinitionSummary[];
}
export declare const ConfigurationManagerSummary: S.Schema<ConfigurationManagerSummary>;
export type ConfigurationManagerList = ConfigurationManagerSummary[];
export declare const ConfigurationManagerList: S.$Array<S.Schema<ConfigurationManagerSummary>>;
export interface ListConfigurationManagersOutput {
    ConfigurationManagersList?: ConfigurationManagerSummary[];
    NextToken?: string;
}
export declare const ListConfigurationManagersOutput: S.Schema<ListConfigurationManagersOutput>;
export interface ListConfigurationsInput {
    StartingToken?: string;
    MaxItems?: number;
    Filters?: Filter[];
    ManagerArn?: string;
    ConfigurationDefinitionId?: string;
}
export declare const ListConfigurationsInput: S.Schema<ListConfigurationsInput>;
export interface ConfigurationSummary {
    Id?: string;
    ManagerArn?: string;
    ConfigurationDefinitionId?: string;
    Type?: string;
    TypeVersion?: string;
    Region?: string;
    Account?: string;
    CreatedAt?: Date;
    FirstClassParameters?: {
        [key: string]: string | undefined;
    };
    StatusSummaries?: StatusSummary[];
}
export declare const ConfigurationSummary: S.Schema<ConfigurationSummary>;
export type ConfigurationsList = ConfigurationSummary[];
export declare const ConfigurationsList: S.$Array<S.Schema<ConfigurationSummary>>;
export interface ListConfigurationsOutput {
    ConfigurationsList?: ConfigurationSummary[];
    NextToken?: string;
}
export declare const ListConfigurationsOutput: S.Schema<ListConfigurationsOutput>;
export interface ListQuickSetupTypesRequest {
}
export declare const ListQuickSetupTypesRequest: S.Schema<ListQuickSetupTypesRequest>;
export interface QuickSetupTypeOutput {
    Type?: string;
    LatestVersion?: string;
}
export declare const QuickSetupTypeOutput: S.Schema<QuickSetupTypeOutput>;
export type QuickSetupTypeList = QuickSetupTypeOutput[];
export declare const QuickSetupTypeList: S.$Array<S.Schema<QuickSetupTypeOutput>>;
export interface ListQuickSetupTypesOutput {
    QuickSetupTypeList?: QuickSetupTypeOutput[];
}
export declare const ListQuickSetupTypesOutput: S.Schema<ListQuickSetupTypesOutput>;
export interface ListTagsForResourceRequest {
    ResourceArn: string;
}
export declare const ListTagsForResourceRequest: S.Schema<ListTagsForResourceRequest>;
export interface TagEntry {
    Key?: string;
    Value?: string;
}
export declare const TagEntry: S.Schema<TagEntry>;
export type Tags = TagEntry[];
export declare const Tags: S.$Array<S.Schema<TagEntry>>;
export interface ListTagsForResourceResponse {
    Tags?: TagEntry[];
}
export declare const ListTagsForResourceResponse: S.Schema<ListTagsForResourceResponse>;
export interface TagResourceInput {
    ResourceArn: string;
    Tags: {
        [key: string]: string | undefined;
    };
}
export declare const TagResourceInput: S.Schema<TagResourceInput>;
export interface TagResourceResponse {
}
export declare const TagResourceResponse: S.Schema<TagResourceResponse>;
export type TagKeys = string[];
export declare const TagKeys: S.$Array<S.String>;
export interface UntagResourceInput {
    ResourceArn: string;
    TagKeys: string[];
}
export declare const UntagResourceInput: S.Schema<UntagResourceInput>;
export interface UntagResourceResponse {
}
export declare const UntagResourceResponse: S.Schema<UntagResourceResponse>;
export interface UpdateConfigurationDefinitionInput {
    ManagerArn: string;
    Id: string;
    TypeVersion?: string;
    Parameters?: {
        [key: string]: string | undefined;
    };
    LocalDeploymentExecutionRoleName?: string;
    LocalDeploymentAdministrationRoleArn?: string;
}
export declare const UpdateConfigurationDefinitionInput: S.Schema<UpdateConfigurationDefinitionInput>;
export interface UpdateConfigurationDefinitionResponse {
}
export declare const UpdateConfigurationDefinitionResponse: S.Schema<UpdateConfigurationDefinitionResponse>;
export interface UpdateConfigurationManagerInput {
    ManagerArn: string;
    Name?: string;
    Description?: string;
}
export declare const UpdateConfigurationManagerInput: S.Schema<UpdateConfigurationManagerInput>;
export interface UpdateConfigurationManagerResponse {
}
export declare const UpdateConfigurationManagerResponse: S.Schema<UpdateConfigurationManagerResponse>;
export interface UpdateServiceSettingsInput {
    ExplorerEnablingRoleArn?: string;
}
export declare const UpdateServiceSettingsInput: S.Schema<UpdateServiceSettingsInput>;
export interface UpdateServiceSettingsResponse {
}
export declare const UpdateServiceSettingsResponse: S.Schema<UpdateServiceSettingsResponse>;
declare const AccessDeniedException_base: S.Class<AccessDeniedException, S.TaggedStruct<"AccessDeniedException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        AuthError: true;
    };
});
export declare class AccessDeniedException extends AccessDeniedException_base {
}
declare const ConflictException_base: S.Class<ConflictException, S.TaggedStruct<"ConflictException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ConflictError: true;
    };
});
export declare class ConflictException extends ConflictException_base {
}
declare const InternalServerException_base: S.Class<InternalServerException, S.TaggedStruct<"InternalServerException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ServerError: true;
    };
}) & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        RetryableError: true;
    };
});
export declare class InternalServerException extends InternalServerException_base {
}
declare const ThrottlingException_base: S.Class<ThrottlingException, S.TaggedStruct<"ThrottlingException", {
    readonly Message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ThrottlingError: true;
    };
}) & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        RetryableError: true;
    };
});
export declare class ThrottlingException extends ThrottlingException_base {
}
declare const ValidationException_base: S.Class<ValidationException, S.TaggedStruct<"ValidationException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class ValidationException extends ValidationException_base {
}
declare const ResourceNotFoundException_base: S.Class<ResourceNotFoundException, S.TaggedStruct<"ResourceNotFoundException", {
    readonly Message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class ResourceNotFoundException extends ResourceNotFoundException_base {
}
export type CreateConfigurationManagerError = AccessDeniedException | ConflictException | InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Creates a Quick Setup configuration manager resource. This object is a collection
 * of desired state configurations for multiple configuration definitions and
 * summaries describing the deployments of those definitions.
 */
export declare const createConfigurationManager: API.OperationMethod<CreateConfigurationManagerInput, CreateConfigurationManagerOutput, CreateConfigurationManagerError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteConfigurationManagerError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Deletes a configuration manager.
 */
export declare const deleteConfigurationManager: API.OperationMethod<DeleteConfigurationManagerInput, DeleteConfigurationManagerResponse, DeleteConfigurationManagerError, Credentials | Region | HttpClient.HttpClient>;
export type GetConfigurationError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Returns details about the specified configuration.
 */
export declare const getConfiguration: API.OperationMethod<GetConfigurationInput, GetConfigurationOutput, GetConfigurationError, Credentials | Region | HttpClient.HttpClient>;
export type GetConfigurationManagerError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Returns a configuration manager.
 */
export declare const getConfigurationManager: API.OperationMethod<GetConfigurationManagerInput, GetConfigurationManagerOutput, GetConfigurationManagerError, Credentials | Region | HttpClient.HttpClient>;
export type GetServiceSettingsError = AccessDeniedException | ConflictException | InternalServerException | ThrottlingException | CommonErrors;
/**
 * Returns settings configured for Quick Setup in the requesting Amazon Web Services account and Amazon Web Services Region.
 */
export declare const getServiceSettings: API.OperationMethod<GetServiceSettingsRequest, GetServiceSettingsOutput, GetServiceSettingsError, Credentials | Region | HttpClient.HttpClient>;
export type ListConfigurationManagersError = AccessDeniedException | ConflictException | InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Returns Quick Setup configuration managers.
 */
export declare const listConfigurationManagers: API.OperationMethod<ListConfigurationManagersInput, ListConfigurationManagersOutput, ListConfigurationManagersError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListConfigurationManagersInput) => stream.Stream<ListConfigurationManagersOutput, ListConfigurationManagersError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListConfigurationManagersInput) => stream.Stream<ConfigurationManagerSummary, ListConfigurationManagersError, Credentials | Region | HttpClient.HttpClient>;
};
export type ListConfigurationsError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Returns configurations deployed by Quick Setup in the requesting Amazon Web Services account and Amazon Web Services Region.
 */
export declare const listConfigurations: API.OperationMethod<ListConfigurationsInput, ListConfigurationsOutput, ListConfigurationsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListConfigurationsInput) => stream.Stream<ListConfigurationsOutput, ListConfigurationsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListConfigurationsInput) => stream.Stream<ConfigurationSummary, ListConfigurationsError, Credentials | Region | HttpClient.HttpClient>;
};
export type ListQuickSetupTypesError = AccessDeniedException | ConflictException | InternalServerException | ThrottlingException | CommonErrors;
/**
 * Returns the available Quick Setup types.
 */
export declare const listQuickSetupTypes: API.OperationMethod<ListQuickSetupTypesRequest, ListQuickSetupTypesOutput, ListQuickSetupTypesError, Credentials | Region | HttpClient.HttpClient>;
export type ListTagsForResourceError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Returns tags assigned to the resource.
 */
export declare const listTagsForResource: API.OperationMethod<ListTagsForResourceRequest, ListTagsForResourceResponse, ListTagsForResourceError, Credentials | Region | HttpClient.HttpClient>;
export type TagResourceError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Assigns key-value pairs of metadata to Amazon Web Services resources.
 */
export declare const tagResource: API.OperationMethod<TagResourceInput, TagResourceResponse, TagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type UntagResourceError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Removes tags from the specified resource.
 */
export declare const untagResource: API.OperationMethod<UntagResourceInput, UntagResourceResponse, UntagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type UpdateConfigurationDefinitionError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Updates a Quick Setup configuration definition.
 */
export declare const updateConfigurationDefinition: API.OperationMethod<UpdateConfigurationDefinitionInput, UpdateConfigurationDefinitionResponse, UpdateConfigurationDefinitionError, Credentials | Region | HttpClient.HttpClient>;
export type UpdateConfigurationManagerError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Updates a Quick Setup configuration manager.
 */
export declare const updateConfigurationManager: API.OperationMethod<UpdateConfigurationManagerInput, UpdateConfigurationManagerResponse, UpdateConfigurationManagerError, Credentials | Region | HttpClient.HttpClient>;
export type UpdateServiceSettingsError = AccessDeniedException | ConflictException | InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Updates settings configured for Quick Setup.
 */
export declare const updateServiceSettings: API.OperationMethod<UpdateServiceSettingsInput, UpdateServiceSettingsResponse, UpdateServiceSettingsError, Credentials | Region | HttpClient.HttpClient>;
export {};
//# sourceMappingURL=ssm-quicksetup.d.ts.map