import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List, MapOf } from "../../data-types";
export declare class BlockerDeclaration {
    Name: Value<string>;
    Type: Value<string>;
    constructor(properties: BlockerDeclaration);
}
export declare class ActionDeclaration {
    OutputArtifacts?: List<OutputArtifact>;
    RunOrder?: Value<number>;
    RoleArn?: Value<string>;
    Name: Value<string>;
    ActionTypeId: ActionTypeId;
    Region?: Value<string>;
    Configuration?: MapOf<any>;
    InputArtifacts?: List<InputArtifact>;
    Namespace?: Value<string>;
    constructor(properties: ActionDeclaration);
}
export declare class ActionTypeId {
    Category: Value<string>;
    Owner: Value<string>;
    Provider: Value<string>;
    Version: Value<string>;
    constructor(properties: ActionTypeId);
}
export declare class ArtifactStoreMap {
    ArtifactStore: ArtifactStore;
    Region: Value<string>;
    constructor(properties: ArtifactStoreMap);
}
export declare class ArtifactStore {
    EncryptionKey?: EncryptionKey;
    Location: Value<string>;
    Type: Value<string>;
    constructor(properties: ArtifactStore);
}
export declare class OutputArtifact {
    Name: Value<string>;
    constructor(properties: OutputArtifact);
}
export declare class StageTransition {
    Reason: Value<string>;
    StageName: Value<string>;
    constructor(properties: StageTransition);
}
export declare class StageDeclaration {
    Actions: List<ActionDeclaration>;
    Blockers?: List<BlockerDeclaration>;
    Name: Value<string>;
    constructor(properties: StageDeclaration);
}
export declare class InputArtifact {
    Name: Value<string>;
    constructor(properties: InputArtifact);
}
export declare class EncryptionKey {
    Id: Value<string>;
    Type: Value<string>;
    constructor(properties: EncryptionKey);
}
export interface PipelineProperties {
    ArtifactStore?: ArtifactStore;
    ArtifactStores?: List<ArtifactStoreMap>;
    DisableInboundStageTransitions?: List<StageTransition>;
    Name?: Value<string>;
    RestartExecutionOnUpdate?: Value<boolean>;
    RoleArn: Value<string>;
    Stages: List<StageDeclaration>;
    Tags?: List<Inner_ResourceTag>;
}
export default class Inner_Pipeline extends ResourceBase<PipelineProperties> {
    static BlockerDeclaration: typeof BlockerDeclaration;
    static ActionDeclaration: typeof ActionDeclaration;
    static ActionTypeId: typeof ActionTypeId;
    static ArtifactStoreMap: typeof ArtifactStoreMap;
    static ArtifactStore: typeof ArtifactStore;
    static OutputArtifact: typeof OutputArtifact;
    static StageTransition: typeof StageTransition;
    static StageDeclaration: typeof StageDeclaration;
    static InputArtifact: typeof InputArtifact;
    static EncryptionKey: typeof EncryptionKey;
    constructor(properties: PipelineProperties);
}
