import React, { HTMLAttributes, ChangeEvent } from 'react';
import { ColorToken } from '@gdsc-dju/styled-components-theme';

declare type NavigationRoutes = {
    route: string;
    title: string;
}[];
interface NavigationProps {
    title?: string;
    routes?: NavigationRoutes;
    pointColor?: ColorToken | string;
    themeButtonActive?: boolean;
    menuPosition?: 'left' | 'right' | 'none' | 'left-mobile-only' | 'right-mobile-only';
    isMenuOpen?: boolean;
    menuToggle?: () => void;
    sideMenu?: React.ReactNode;
    rightElement?: React.ReactNode;
    customLogo?: React.ReactNode;
}
declare const Navigation: ({ routes, title, customLogo, themeButtonActive, pointColor, menuPosition, menuToggle, isMenuOpen, sideMenu, rightElement, }: NavigationProps) => JSX.Element;

interface FooterProps {
    disable?: boolean;
    pages?: {
        text: string;
        link: string;
    }[];
}
declare const Footer: ({ disable, pages }: FooterProps) => JSX.Element;

declare const ThemeToggleButton: () => JSX.Element;

interface TextInputProps extends HTMLAttributes<HTMLInputElement> {
    error?: boolean;
    disabled?: boolean;
}
declare const TextInput: React.ForwardRefExoticComponent<TextInputProps & React.RefAttributes<HTMLInputElement>>;

interface TextAreaProps extends HTMLAttributes<HTMLTextAreaElement> {
    error?: boolean;
    disabled?: boolean;
}
declare const TextArea: React.ForwardRefExoticComponent<TextAreaProps & React.RefAttributes<HTMLTextAreaElement>>;

interface FileInputProps extends HTMLAttributes<HTMLInputElement> {
    defaultPlaceholder: string;
    errorToggle?: boolean;
    disabled?: boolean;
    onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
    accept?: string;
}
declare const FileInput: React.ForwardRefExoticComponent<FileInputProps & React.RefAttributes<HTMLInputElement>>;

export { FileInput, Footer, Navigation, NavigationProps, TextArea, TextInput, ThemeToggleButton };
