/// <reference types="react" />
import { RenderAdminSelectorProps, RenderCategorySelectorProps, RenderInboxSelectorProps } from '@parlor/components/select';
type Field = RenderAdminSelectorProps | RenderCategorySelectorProps | RenderInboxSelectorProps;
type LoadOptions<T extends Field> = (searchTerm: string) => Promise<T[]>;
type ManageArtifactField<T extends Field> = {
    element: (loadOptions: LoadOptions<T>) => JSX.Element;
    name: string;
    placeholder: string;
};
export declare enum FieldName {
    Category = "category",
    Inbox = "workspace",
    Owner = "owner"
}
export type ManageArtifactFields = {
    [FieldName.Category]?: ManageArtifactField<RenderCategorySelectorProps>;
    [FieldName.Inbox]?: ManageArtifactField<RenderInboxSelectorProps>;
    [FieldName.Owner]?: ManageArtifactField<RenderAdminSelectorProps>;
};
export declare namespace ManageArtifactTypes {
    type ManageArtifactValues = Partial<{
        [K in FieldName]: FieldOptions[K]['value'];
    }>;
    type FieldOption<T extends Field> = {
        loadOptions?: LoadOptions<T>;
        order?: number;
        show?: boolean;
        value?: T;
    };
    type FieldOptions = {
        [FieldName.Category]?: FieldOption<RenderCategorySelectorProps>;
        [FieldName.Inbox]?: FieldOption<RenderInboxSelectorProps>;
        [FieldName.Owner]?: FieldOption<RenderAdminSelectorProps>;
    };
}
export {};
