import { LitElement, PropertyValueMap } from 'lit';
import { WeavyType } from '../contexts/weavy-context';
import { UserType } from '../types/users.types';
import { ContextIdType } from '../contexts/context-id-context';
import { WeavyComponentContextProps } from '../types/component.types';
/**
 * Base class for internal weavy sub components. This class provides common properties and internal data consumed from contexts.
 *
 * @fires ready - When the component has rendered.
 */
export declare class WeavySubComponent extends LitElement implements WeavyComponentContextProps {
    #private;
    /**
     * @internal
     */
    contextId: ContextIdType | undefined;
    /**
     * @internal
     */
    user: UserType | undefined;
    /**
     * @internal
     */
    weavy: WeavyType | undefined;
    /**
     * Resolves when a contextual id is available.
     *
     * @internal
     * @returns {Promise<ContextIdType>}
     */
    whenContextId(): Promise<string>;
    /**
     * Resolves when current user data is available.
     *
     * @internal
     * @returns {Promise<UserType>}
     */
    whenUser(): Promise<UserType>;
    /**
     * Resolves when a weavy context is available.
     *
     * @internal
     * @returns {Promise<WeavyType>}
     */
    whenWeavy(): Promise<WeavyType>;
    /**
     * Resolves when the component has rendered first time.
     *
     * @returns {Promise<WeavySubComponent>}
     */
    whenReady(): Promise<WeavySubComponent>;
    protected willUpdate(changedProperties: PropertyValueMap<this>): void;
    connectedCallback(): void;
    protected firstUpdated(changedProperties: PropertyValueMap<this>): void;
}
//# sourceMappingURL=weavy-sub-component.d.ts.map