import { Attachment } from 'stream-chat';
import { AttachmentConfigration, ImageAttachmentConfiguration, VideoAttachmentConfiguration } from './types';
import * as i0 from "@angular/core";
/**
 * The `AttachmentConfigurationService` provides customization for certain attributes of attachments displayed inside the message component. If you're using your own CDN, you can integrate resizing features of it by providing your own handlers.
 */
export declare class AttachmentConfigurationService {
    /**
     * A custom handler can be provided to override the default image attachment (images uploaded from files) configuration. By default the SDK uses fixed image height (a size that's known before image is loaded), if you override that with dynamic image height (for example: height: 100%) the scrolling logic inside the message list can break.
     */
    customImageAttachmentConfigurationHandler?: (a: Attachment, type: 'gallery' | 'single' | 'carousel', containerElement: HTMLElement) => ImageAttachmentConfiguration;
    /**
     * A custom handler can be provided to override the default video attachment (videos uploaded from files) configuration. By default the SDK uses fixed height (a size that's known before video is loaded), if you override that with dynamic height (for example: height: 100%) the scrolling logic inside the message list can break.
     */
    customVideoAttachmentConfigurationHandler?: (a: Attachment, containerElement: HTMLElement) => VideoAttachmentConfiguration;
    /**
     * A custom handler can be provided to override the default giphy attachment (GIFs sent with the /giphy command) configuration. By default the SDK uses fixed height (a size that's known before the GIF is loaded), if you override that with dynamic height (for example: height: 100%) the scrolling logic inside the message list can break.
     */
    customGiphyAttachmentConfigurationHandler?: (a: Attachment) => AttachmentConfigration;
    /**
     * A custom handler can be provided to override the default scraped image attachment (images found in links inside messages) configuration. By default the SDK uses fixed height (a size that's known before image is loaded), if you override that with dynamic height (for example: height: 100%) the scrolling logic inside the message list can break.
     */
    customScrapedImageAttachmentConfigurationHandler?: (a: Attachment) => AttachmentConfigration;
    /**
     * You can turn on/off thumbnail generation for video attachments
     */
    shouldGenerateVideoThumbnail: boolean;
    /**
     * Handles the configuration for image attachments, it's possible to provide your own function to override the default logic
     * @param attachment The attachment to configure
     * @param location Specifies where the image is being displayed
     * @param element The default resizing logics reads the height/max-height and max-width propperties of this element and reduces file size based on the given values. File size reduction is done by Stream's CDN.
     */
    getImageAttachmentConfiguration(attachment: Attachment, location: 'gallery' | 'single' | 'carousel', element: HTMLElement): ImageAttachmentConfiguration;
    /**
     * Handles the configuration for video attachments, it's possible to provide your own function to override the default logic
     * @param attachment The attachment to configure
     * @param element The default resizing logics reads the height/max-height and max-width propperties of this element and reduces file size based on the given values. File size reduction is done by Stream's CDN.
     */
    getVideoAttachmentConfiguration(attachment: Attachment, element: HTMLElement): VideoAttachmentConfiguration;
    /**
     * Handles the configuration for giphy attachments, it's possible to provide your own function to override the default logic
     * @param attachment The attachment to configure
     */
    getGiphyAttachmentConfiguration(attachment: Attachment): AttachmentConfigration;
    /**
     * Handles the configuration for scraped image attachments, it's possible to provide your own function to override the default logic
     * @param attachment The attachment to configure
     */
    getScrapedImageAttachmentConfiguration(attachment: Attachment): AttachmentConfigration;
    private addResizingParamsToUrl;
    private getSizingRestrictions;
    private getSizeRestrictions;
    private getCSSSizeRestriction;
    private getValueRepresentationOfCSSProperty;
    static ɵfac: i0.ɵɵFactoryDeclaration<AttachmentConfigurationService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AttachmentConfigurationService>;
}
