/**
 *
 *  Copyright (c) "Neo4j"
 *  Neo4j Sweden AB [http://neo4j.com]
 *
 *  This file is part of Neo4j.
 *
 *  Neo4j is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
import { type CodeBlock } from '@neo4j-ndl/react';
import { type CommonProps } from '../../_common/types';
type PreviewProps = {
    children: React.ReactNode;
};
type PreviewHeaderProps = {
    children?: React.ReactNode;
    actions?: React.ReactNode;
};
type PreviewConfirmationProps = {
    /** The content to display in the confirmation */
    children?: React.ReactNode;
    /** The actions to display in the confirmation, usually two buttons; one for confirming and one for rejecting. */
    actions: React.ReactNode;
    /** Whether the confirmation is used as a footer */
    isFooter?: boolean;
    /** The status of the confirmation */
    status?: 'pending' | 'confirmed' | 'rejected';
    /** The text to display for the confirmed status */
    confirmedActionText?: string;
    /** The text to display for the rejected status */
    rejectedActionText?: string;
};
type PreviewCodeProps = {
    /** The code content to display */
    code: string;
    /** The language of the code (e.g., 'cypher', 'python', 'javascript') */
    language: React.ComponentProps<typeof CodeBlock>['language'];
    /** The current state of the code block */
    label?: 'read' | 'write';
    /** Whether the code block is loading */
    isLoading?: boolean;
    /** The actions to display in the header. Should be small buttons or icon buttons only. */
    headerActions?: React.ReactNode;
    /** The theme of the code block */
    theme?: 'ndl-code-dark' | 'ndl-code-light';
};
type PreviewContentProps = {
    children?: React.ReactNode;
};
export declare const Preview: (({ children, ref, style, className, htmlAttributes, ...restProps }: CommonProps<"div", PreviewProps>) => import("react/jsx-runtime").JSX.Element) & {
    Code: ({ code, language, label, isLoading, headerActions, theme, ref, style, className, htmlAttributes, ...restProps }: CommonProps<"div", PreviewCodeProps>) => import("react/jsx-runtime").JSX.Element;
    Confirmation: ({ children, actions, isFooter, status, confirmedActionText, rejectedActionText, ref, style, className, htmlAttributes, ...restProps }: CommonProps<"div", PreviewConfirmationProps>) => import("react/jsx-runtime").JSX.Element;
    Content: ({ children, ref, style, className, htmlAttributes, ...restProps }: CommonProps<"div", PreviewContentProps>) => import("react/jsx-runtime").JSX.Element;
    Header: ({ children, actions, ref, style, className, htmlAttributes, ...restProps }: CommonProps<"div", PreviewHeaderProps>) => import("react/jsx-runtime").JSX.Element;
};
export {};
//# sourceMappingURL=Preview.d.ts.map