import * as react_jsx_runtime from 'react/jsx-runtime';
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
import { Entity } from '@backstage/catalog-model';
import * as zustand from 'zustand';
import { StoreApi } from 'zustand';

/**
 * Props for Markdown content component {@link Content}.
 *
 * @public
 */
type MarkdownContentProps = {
    hostname?: string;
    owner: string;
    repo: string;
    path: string;
    branch?: string;
    preserveHtmlComments?: boolean;
};

declare const githubInsightsPlugin: _backstage_core_plugin_api.BackstagePlugin<{
    root: _backstage_core_plugin_api.RouteRef<undefined>;
}, {}, {}>;
declare const EntityGithubInsightsContent: () => react_jsx_runtime.JSX.Element;
declare const EntityGithubInsightsComplianceCard: () => react_jsx_runtime.JSX.Element;
declare const EntityGithubInsightsContributorsCard: () => react_jsx_runtime.JSX.Element;
declare const EntityGithubInsightsLanguagesCard: () => react_jsx_runtime.JSX.Element;
declare const EntityGithubInsightsReadmeCard: (props: {
    maxHeight?: number;
    title?: string;
}) => react_jsx_runtime.JSX.Element;
declare const EntityGithubInsightsReleasesCard: () => react_jsx_runtime.JSX.Element;
declare const EntityGithubInsightsEnvironmentsCard: () => react_jsx_runtime.JSX.Element;

declare const InsightsPage: () => react_jsx_runtime.JSX.Element;

declare const isGithubInsightsAvailable: (entity: Entity) => boolean;

declare const ContributorsCard: () => react_jsx_runtime.JSX.Element;

declare const LanguagesCard: () => react_jsx_runtime.JSX.Element;

type ReadMeCardProps = {
    maxHeight?: number;
    title?: string;
};
declare const ReadMeCard: (props: ReadMeCardProps) => react_jsx_runtime.JSX.Element;

/**
 * A component to render a markdown file from github
 *
 * @public
 */
declare const MarkdownContent: (props: MarkdownContentProps) => react_jsx_runtime.JSX.Element;

declare const ReleasesCard: () => react_jsx_runtime.JSX.Element;

declare const ComplianceCard: () => react_jsx_runtime.JSX.Element;

declare const EnvironmentsCard: () => react_jsx_runtime.JSX.Element;

type RequestStateStore = {
    [key: string]: GithubRequestState;
};
type GithubRequestState = {
    etag: string;
    data: string | object;
};
type State = {
    state: GithubRequestState;
    setState: (next: GithubRequestState) => void;
};
type StateStore = {
    state: RequestStateStore;
    setState: (key: string, value: GithubRequestState) => void;
};
type GithubInsightsState = {
    license: State;
    contributor: StateStore;
    branches: State;
    request: StateStore;
};

declare const useStore: zustand.UseBoundStore<GithubInsightsState, StoreApi<GithubInsightsState>>;

export { ComplianceCard, ContributorsCard, EntityGithubInsightsComplianceCard, EntityGithubInsightsContent, EntityGithubInsightsContributorsCard, EntityGithubInsightsEnvironmentsCard, EntityGithubInsightsLanguagesCard, EntityGithubInsightsReadmeCard, EntityGithubInsightsReleasesCard, EnvironmentsCard, InsightsPage, LanguagesCard, MarkdownContent, ReadMeCard, ReleasesCard, githubInsightsPlugin, isGithubInsightsAvailable, githubInsightsPlugin as plugin, useStore };
