import React from 'react';
import type { IArtifactAccount } from '../../account';
import type { IArtifact, IExpectedArtifact, IPipeline, IStage } from '../../domain';
export interface IStageArtifactSelectorProps {
    pipeline: IPipeline;
    stage: IStage;
    expectedArtifactId?: string;
    artifact?: IArtifact;
    onExpectedArtifactSelected: (expectedArtifact: IExpectedArtifact) => void;
    onArtifactEdited: (artifact: IArtifact) => void;
    excludedArtifactIds?: string[];
    excludedArtifactTypePatterns?: RegExp[];
    renderLabel?: (reactNode: React.ReactNode) => React.ReactNode;
}
export interface IStageArtifactSelectorState {
    artifactAccounts: IArtifactAccount[];
}
export declare class StageArtifactSelector extends React.Component<IStageArtifactSelectorProps, IStageArtifactSelectorState> {
    private defineNewArtifactOption;
    private destroy$;
    constructor(props: IStageArtifactSelectorProps);
    componentWillUnmount(): void;
    componentDidMount(): void;
    private renderArtifact;
    private onExpectedArtifactSelected;
    private onInlineArtifactChanged;
    render(): JSX.Element;
}
export declare const STAGE_ARTIFACT_SELECTOR_COMPONENT_REACT = "spinnaker.core.artifacts.stage.artifact.selector.react";
