import { TemplateResult, LitElement, nothing } from 'lit';
import { type IUser } from '../../../providers/user.js';
export type OrgCreateReason = 'setup' | 'add';
/**
 * An App screen (HTML Element) allowing the user to create a new organization during the setup process.
 *
 * Note, this element does not handle the actual API logic, it only provides the UI and dispatches events.
 *
 * @fires create - Dispatched when the user submits the form with a valid organization name.
 *                 The event detail contains `{ organization: string }`.
 * @fires cancel - Dispatched when the user cancels the operation (only available when `reason` is 'add').
 *
 * @example
 * ```html
 * <organization-create-screen
 *   reason="setup"
 *   @create="${this.handleCreate}"
 * ></organization-create-screen>
 * ```
 */
export default class OrganizationCreateScreen extends LitElement {
    /**
     * The current user information.
     *
     * This property consumes the `userContext`.
     */
    accessor user: IUser | undefined;
    /**
     * Computed user name for welcome message.
     */
    get userName(): string;
    /**
     * Computed intro message based on the reason for creating the organization.
     */
    get introMessage(): string;
    /**
     * Indicates whether the screen is in the loading state.
     * @attribute
     */
    accessor loading: boolean;
    /**
     * The user-entered organization name. Can be set to pre-fill the input field.
     * @attribute
     */
    accessor organization: string | undefined;
    /**
     * The reason for creating the organization, affecting the welcome message.
     *
     * Possible values are:
     * - 'setup': for initial setup
     * - 'add': for adding an additional organization
     *
     * @attribute
     */
    accessor reason: OrgCreateReason;
    protected handleFormSubmit(e: SubmitEvent): void;
    setupOrganization(organization: string): void;
    protected handleCancel(): void;
    render(): TemplateResult;
    private renderWelcomeMessage;
    protected renderForm(): TemplateResult;
    protected renderInvitationInfo(): TemplateResult | typeof nothing;
    protected renderOrganizationInput(): TemplateResult;
    protected renderCancelButton(): TemplateResult | typeof nothing;
    protected renderLoader(): TemplateResult;
}
//# sourceMappingURL=OrganizationCreateScreen.d.ts.map