import React from 'react';
import type { IExpectedArtifactSourceOption } from './ExpectedArtifactSourceSelector';
import type { IArtifactAccount } from '../../account';
import type { IArtifact, IArtifactKindConfig, IExpectedArtifact, IPipeline } from '../../domain';
export interface IExpectedArtifactEditorProps {
    default?: IExpectedArtifact;
    kinds: IArtifactKindConfig[];
    sources: IExpectedArtifactSourceOption[];
    accounts: IArtifactAccount[];
    onArtifactChange?: (_a: IArtifact) => void;
    onSave: (e: IExpectedArtifactEditorSaveEvent) => void;
    showIcons?: boolean;
    showAccounts?: boolean;
    hidePipelineFields?: boolean;
    className?: string;
    pipeline?: IPipeline;
}
interface IExpectedArtifactEditorState {
    expectedArtifact: IExpectedArtifact;
    source?: IExpectedArtifactSourceOption;
    account?: IArtifactAccount;
}
export interface IExpectedArtifactEditorSaveEvent {
    expectedArtifact: IExpectedArtifact;
    source: IExpectedArtifactSourceOption;
    account: IArtifactAccount;
}
export declare class ExpectedArtifactEditor extends React.Component<IExpectedArtifactEditorProps, IExpectedArtifactEditorState> {
    static defaultProps: {
        showIcons: boolean;
        showAccounts: boolean;
        fieldColumns: number;
        singleColumn: boolean;
    };
    constructor(props: IExpectedArtifactEditorProps);
    private onSave;
    private accountsForExpectedArtifact;
    private onSourceChange;
    private onKindChange;
    private onAccountChange;
    private onArtifactEdit;
    private availableKinds;
    private onArtifactDisplayNameEdit;
    render(): JSX.Element;
}
export declare const EXPECTED_ARTIFACT_EDITOR_COMPONENT_REACT = "spinnaker.core.artifacts.expected.editor.react";
export {};
