import { VerdocsEndpoint } from '@verdocs/js-sdk';
import { ITemplate } from '@verdocs/js-sdk';
import { EventEmitter } from '../../../stencil-public-runtime';
import { SDKError } from '../../../utils/errors';
export type TAllowedTemplateAction = 'send' | 'createlink' | 'signnow' | 'submitted' | 'link' | 'edit' | 'delete';
/**
 * Displays a list of envelopes matching specified conditions.
 */
export declare class VerdocsTemplatesList {
    /**
     * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.
     */
    endpoint: VerdocsEndpoint;
    /**
     * The sharing settings to filter by.
     */
    visibility?: 'private_shared' | 'private' | 'shared' | 'public';
    /**
     * The starred settings to filter by.
     */
    starred: 'all' | 'starred' | 'unstarred';
    /**
     * The sort order to display.
     */
    sort: string;
    /**
     * If set, filter templates by the specified name.
     */
    name: string;
    /**
     * Override the If set, filter templates by the specified name.
     */
    allowedActions: TAllowedTemplateAction[];
    /**
     * Whether or not pagination should be enabled.
     */
    showPagination: boolean;
    /**
     * The number of rows to display per page.
     */
    rowsPerPage: number;
    /**
     * The initial page number to select. Pagination is internally controlled but may be overriden by the
     * host applicaiton.
     */
    selectedPage: number;
    /**
     * Event fired if an error occurs. The event details will contain information about the error. Most errors will
     * terminate the process, and the calling application should correct the condition and re-render the component.
     */
    sdkError: EventEmitter<SDKError>;
    /**
     * Event fired when the user clicks a template to view it. Typically the host application will use this to navigate
     * to the template preview. This is also fired when the user selects "Preview/Send" fropm the dropdown menu.
     */
    viewTemplate: EventEmitter<{
        endpoint: VerdocsEndpoint;
        template: ITemplate;
    }>;
    /**
     * Event fired when the user clicks to sign a template now.
     */
    signNow: EventEmitter<{
        endpoint: VerdocsEndpoint;
        template: ITemplate;
    }>;
    /**
     * Event fired when the user clicks to sign a template now.
     */
    submittedData: EventEmitter<{
        endpoint: VerdocsEndpoint;
        template: ITemplate;
    }>;
    /**
     * Event fired when the user selects to create a preview link for a template.
     */
    /**
     * Event fired when the user chooses the Edit option from the dropdown menu.
     */
    editTemplate: EventEmitter<{
        endpoint: VerdocsEndpoint;
        template: ITemplate;
    }>;
    /**
     * Event fired when the user chooses the Delete option from the dropdown menu. When this is fired, the template
     * will already have been deleted. The host application should remove it from the list or refresh the list.
     */
    templateDeleted: EventEmitter<{
        endpoint: VerdocsEndpoint;
        template: ITemplate;
    }>;
    /**
     * Event fired when the user changes their sort order. Host applications can use this to save the user's preferences.
     */
    changeSort: EventEmitter<string>;
    /**
     * Event fired when the user changes their sort order. Host applications can use this to save the user's preferences.
     */
    changeVisibility: EventEmitter<'private_shared' | 'private' | 'shared' | 'public'>;
    /**
     * Event fired when the user changes their sort order. Host applications can use this to save the user's preferences.
     */
    changeStarred: EventEmitter<'all' | 'starred' | 'unstarred'>;
    /**
     * Event fired when the user changes the name filter. This is fired for every inputChange event (every character
     * typed). This event is provided for balance with the other events, but host applications should generally not
     * save this value. Users might appreciate applications remembering their sorting or filtering preferences, but
     * probably not their search terms.
     */
    changeName: EventEmitter<string>;
    count: number;
    initiallyLoaded: boolean;
    loading: boolean;
    confirmDelete: ITemplate | null;
    templates: ITemplate[];
    localNameFilter: string;
    handleSharingUpdated(): Promise<void>;
    handleStarredUpdated(): Promise<void>;
    handleSortUpdated(): Promise<void>;
    handleNameUpdated(): Promise<void>;
    handlePageUpdated(): Promise<void>;
    componentWillLoad(): void;
    componentDidLoad(): Promise<void>;
    queryTemplates(): Promise<void>;
    handleOptionSelected: (option: string, template: ITemplate) => void;
    deleteTemplate(template: ITemplate): void;
    render(): any;
}
