import { ResponseBuilder } from 'ask-sdk-core';
import { canfulfill, Directive, Intent, interfaces, Response } from 'ask-sdk-model';
import { JargonResponseBuilder, JargonResponseBuilderOptions, RGOParam } from '.';
import { RenderItem, ResourceManager } from '@jargon/sdk-core';
import AudioItemMetadata = interfaces.audioplayer.AudioItemMetadata;
export declare const DefaultJargonResponseBuilderOptions: Required<JargonResponseBuilderOptions>;
export declare class JRB implements JargonResponseBuilder {
    private _rb;
    private _rm;
    private _opts;
    private _q;
    private _speak;
    private _reprompt;
    constructor(rb: ResponseBuilder, rm: ResourceManager, opts?: JargonResponseBuilderOptions);
    speak(speechOutput: RenderItem, optionsOrMerge?: RGOParam): this;
    reprompt(repromptSpeechOutput: RenderItem, optionsOrMerge?: RGOParam): this;
    withSimpleCard(cardTitle: RenderItem, cardContent: RenderItem): this;
    withStandardCard(cardTitle: RenderItem, cardContent: RenderItem, smallImageUrl?: string, largeImageUrl?: string): this;
    withLinkAccountCard(): this;
    withAskForPermissionsConsentCard(permissionArray: string[]): this;
    addDelegateDirective(updatedIntent?: Intent): this;
    addElicitSlotDirective(slotToElicit: string, updatedIntent?: Intent): this;
    addConfirmSlotDirective(slotToConfirm: string, updatedIntent?: Intent): this;
    addConfirmIntentDirective(updatedIntent?: Intent): this;
    addAudioPlayerPlayDirective(playBehavior: interfaces.audioplayer.PlayBehavior, url: string, token: string, offsetInMilliseconds: number, expectedPreviousToken?: string, audioItemMetadata?: AudioItemMetadata): this;
    addAudioPlayerStopDirective(): this;
    addAudioPlayerClearQueueDirective(clearBehavior: interfaces.audioplayer.ClearBehavior): this;
    addRenderTemplateDirective(template: interfaces.display.Template): this;
    addHintDirective(text: RenderItem): this;
    addVideoAppLaunchDirective(source: string, title?: RenderItem, subtitle?: RenderItem): this;
    withCanFulfillIntent(canFulfillIntent: canfulfill.CanFulfillIntent): this;
    withShouldEndSession(val: boolean): this;
    addDirective(directive: Directive): this;
    getResponse(): Promise<Response>;
    private _shouldMerge;
}
