import { ComponentID, ComponentIdObj } from '@teambit/component-id';
import { ComponentLog } from '@teambit/legacy/dist/scope/models/model-component';
import { Component } from './component';
import { ComponentFactory } from './component-factory';
import { ComponentMain } from './component.main.runtime';
export declare function componentSchema(componentExtension: ComponentMain): {
    typeDefs: import("graphql").DocumentNode;
    resolvers: {
        JSONObject: import("graphql").GraphQLScalarType;
        Component: {
            id: (component: Component) => ComponentIdObj;
            displayName: (component: Component) => string;
            fs: (component: Component) => string[];
            log: (component: Component) => Promise<{
                date: number;
                email: string;
                username: string | undefined;
                displayName: string;
                id: string;
                hash: string;
                timestamp: Date;
                parents: string[];
                author: import("./snap").Author;
                message: string;
            }>;
            getFile: (component: Component, { path }: {
                path: string;
            }) => string | undefined;
            mainFile: (component: Component) => any;
            headTag: (component: Component) => import(".").TagProps | undefined;
            latest: (component: Component) => string | undefined;
            tags: (component: any) => any;
            aspects: (component: Component, { include }: {
                include?: string[];
            }) => import("./component-interface").RawComponentMetadata[];
            elementsUrl: () => undefined;
            logs: (component: Component, filter?: {
                type?: string;
                offset?: number;
                limit?: number;
                head?: string;
                sort?: string;
                takeHeadFromComponent: boolean;
            }) => Promise<{
                id: string;
                message: string;
                username?: string;
                displayName?: string;
                email?: string;
                date?: string;
                hash: string;
                tag?: string;
                parents: string[];
                profileImage?: string;
                onLane?: boolean;
                deleted?: boolean;
                deprecated?: boolean;
            }[]>;
        };
        ComponentHost: {
            get: (host: ComponentFactory, { id }: {
                id: string;
            }) => Promise<Component | null | undefined>;
            snaps: (host: ComponentFactory, { id }: {
                id: string;
            }) => Promise<ComponentLog[]>;
            list: (host: ComponentFactory, filter?: {
                offset: number;
                limit: number;
            }) => Promise<Component[]>;
            listInvalid: (host: ComponentFactory) => Promise<{
                id: ComponentID;
                errorName: string;
                errorMessage: string;
            }[]>;
            id: (host: ComponentFactory) => Promise<string>;
            name: (host: ComponentFactory) => Promise<string>;
        };
        Query: {
            getHost: (componentExt: ComponentMain, { id }: {
                id: string;
            }) => ComponentFactory;
        };
    };
};
