import React, { ForwardedRef } from 'react';
import { ControllerTransformer } from '@parlor/ui';
import { AsyncSelect, SelectActions, SelectBaseProps, StaticSelect } from '../../helpers';
export type PropertySelectorProps<T extends Record<string, unknown> | string, IsAsync extends boolean = true> = SelectBaseProps<T> & (IsAsync extends true ? AsyncSelect<T> & {
    isSearchable?: boolean;
} : StaticSelect<T> & {
    isSearchable?: never;
}) & {
    customZIndex?: number;
    defaultIsOpen?: boolean;
    disabled?: boolean;
    onChange: (items?: T | null) => void;
    onIsOpenChange?(props: {
        isOpen: boolean;
    }): void;
    preOptions?: Array<{
        id: string;
        name: string;
    }>;
    renderMenuFooter?: (payload: {
        inputValue: string;
        selectedItem?: T;
    } & SelectActions<T>) => JSX.Element;
    renderMenuHeader?: (payload: {
        inputValue: string;
        selectedItem?: T;
    } & SelectActions<T>) => JSX.Element;
    renderValueContainer?: (selectedItem: T) => JSX.Element;
    searchPlaceholder?: string;
    style?: React.CSSProperties;
    transform?: ControllerTransformer['transform'];
    value?: T | null;
};
export declare const PropertySelector: <T extends Record<"id", string>, IsAsync extends boolean = true>(props: PropertySelectorProps<T, IsAsync>, ref: ForwardedRef<unknown>) => JSX.Element;
