import { LitElement, ReactiveController, ReactiveControllerHost } from 'lit';
import { ContextConsumer } from '@lit/context';
import { WeavyType } from '../contexts/weavy-context';
import { AppType } from '../types/app.types';
import { CreateAppMutationType } from '../data/app';
export interface CreateConversationProps {
    /**
     * Optional agent uid to use.
     */
    agent?: string;
}
/**
 * Lit element controller for creating a conversation app.
 *
 * - Requires a weavy context.
 * - May use members and an agent.
 *
 * @fires {WyActionEventType} wy-selected - Emitted when a conversation app is created and should be selected.
 */
export declare class CreateConversationController implements ReactiveController {
    host: LitElement & ReactiveControllerHost;
    /**
     * Explicit agent id for agent mode. This is also checked for directly on the host.
     */
    agent?: string;
    private addConversationMutation?;
    protected weavyContext?: ContextConsumer<{
        __context__: WeavyType;
    }, LitElement>;
    protected whenWeavyContext: Promise<WeavyType>;
    protected resolveWeavyContext?: (value: WeavyType | PromiseLike<WeavyType>) => void;
    protected get weavy(): WeavyType | undefined;
    constructor(host: LitElement);
    /**
     * Initiates context consumers
     */
    protected setContexts(): Promise<void>;
    /**
     * Dispatch a `wy-action` event on the host.
     *
     * @fires {WyActionEventType} wy-action - Emitted when a conversation app is created and should be selected.
     */
    protected dispatchActionEvent(conversation: AppType): boolean;
    /**
     * Create mutation controller.
     */
    protected initMutation(): Promise<CreateAppMutationType>;
    /**
     * Create a conversation and trigger a `select` event.
     *
     * @param members - Array of members by id/uid for a new conversation.
     * @returns Whether the event was successful.
     * @fires {WyActionEventType} wy-action - Emitted when a conversation app is created and should be selected.
     */
    create(members?: (number | string)[]): Promise<AppType>;
    hostUpdate(): void;
}
//# sourceMappingURL=create-conversation-controller.d.ts.map